我有一个Arraylist可能包含或不包含重复的字符串,
list = ["car", "car", "car"] 要么 list = ["car", "car", "bike", "car"]
我想知道下面的内容,
if(list contains All same strings)
same = true
else if(list contains atleast one different element)
same = false
Run Code Online (Sandbox Code Playgroud)
请以书面形式帮我解决上述问题.
将所有值放入a Set并检查大小是否为1或更大.
List<String> list = Arrays.asList("car", "car", "bike", "car");
Set<String> unique = new HashSet<String>(list);
boolean same;
if (unique.size() > 1) {
same = false;
} else {
same = true;
}
System.out.println(same); // prints false
System.out.println(list); // prints [car, car, bike, car]
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Java 8,那么这很简单:
same = list.stream().distinct().count() > 1
Run Code Online (Sandbox Code Playgroud)
如果您不熟悉流,则可以将此语句解释为:在列表中创建项目流,过滤掉所有重复项,然后计算流中剩余的唯一项目数.
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |