查找ArrayList是否包含atleat一个不同的字符串

Scr*_*ode 0 java arraylist

我有一个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)

请以书面形式帮我解决上述问题.

Nam*_*ala 7

将所有值放入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)


spr*_*ter 6

如果您使用的是Java 8,那么这很简单:

same = list.stream().distinct().count() > 1
Run Code Online (Sandbox Code Playgroud)

如果您不熟悉流,则可以将此语句解释为:在列表中创建项目流,过滤掉所有重复项,然后计算流中剩余的唯一项目数.