Java 查找ArrayList是否包含至少一个不同的字符串

Java 查找ArrayList是否包含至少一个不同的字符串,java,arraylist,Java,Arraylist,我有一个Arraylist字符串,这些字符串可能包含重复项,也可能不包含重复项 list=[“汽车”、“汽车”、“汽车”]或list=[“汽车”、“汽车”、“自行车”、“汽车”] 我想知道下面的事情 if(list contains All same strings) same = true else if(list contains atleast one different element) same = false 请帮助我写出上述条件。将所有值放入集合中,并检查大小是否为1或更多

我有一个
Arraylist
字符串,这些字符串可能包含重复项,也可能不包含重复项

list=[“汽车”、“汽车”、“汽车”]
list=[“汽车”、“汽车”、“自行车”、“汽车”]

我想知道下面的事情

if(list contains All same strings)
 same = true
else if(list contains atleast one different element)
 same = false

请帮助我写出上述条件。

将所有值放入
集合中,并检查大小是否为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]
List List=array.asList(“汽车”、“汽车”、“自行车”、“汽车”);
Set unique=新哈希集(列表);
布尔相同;
如果(唯一的.size()>1){
相同=错误;
}否则{
相同=正确;
}
System.out.println(相同);//打印错误
System.out.println(列表);//印刷品[汽车,汽车,自行车,汽车]

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

same = list.stream().distinct().count() > 1
如果您不熟悉流,可以将此语句解释为:创建列表中项目的流,过滤掉所有重复项,然后计算流中剩余的唯一项目数

containsAll()可以检查列表中是否存在所有传递的参数。它接受集合类型参数作为参数,因此使多个列表只传递该列表中的一个参数,并将此作为参数传递给containsAll()。以下是虚拟的可操作代码

public static void main(String[] args)
{
    List<String> list = new ArrayList<String>();
    list.add("Car");
    list.add("Car");
    list.add("Car");

    List<String> paramlist = new ArrayList<String>();
    paramlist.add("Car");
    boolean same = false;
    if(list.containsAll(paramlist)){
        same = true;
    }
    else{
        same = false;
    }

}
publicstaticvoidmain(字符串[]args)
{
列表=新的ArrayList();
列表。添加(“Car”);
列表。添加(“Car”);
列表。添加(“Car”);
List paramlist=new ArrayList();
参数列表。添加(“Car”);
布尔相同=假;
if(列表包含所有(参数列表)){
相同=正确;
}
否则{
相同=错误;
}
}

但它将删除重复的元素。我根据注释添加了注释-“将所有值放在一个集中,并检查大小是否为1或更多。”。你后来编辑了它。现在很好。:@Rehman,对不起,我编辑了什么?你能发表我之前的评论吗。并查看更新后的代码和输出。@Rehman如果你能给我投票否决我答案的理由,那就太好了。我会记住的,对不起。我的错误。漏了一行。投票支持upI的人喜欢Naman和Sprinter的两个答案。但不确定该用哪一个。我使用Java1.8环境。这两个答案中哪一个更有效?我认为你应该使用@sprinter的答案。