Java 检查数组列表内容是否等于列表内容
我有两个对象,一个是list(变量a=10,b=array,c=object),另一个是set(变量a=10,b=array,c=object),我想检查list和set的内容是否相等?请让我知道如何检查这个。提前感谢:)首先,比较大小,然后重复列表并检查集合中是否存在Java 检查数组列表内容是否等于列表内容,java,Java,我有两个对象,一个是list(变量a=10,b=array,c=object),另一个是set(变量a=10,b=array,c=object),我想检查list和set的内容是否相等?请让我知道如何检查这个。提前感谢:)首先,比较大小,然后重复列表并检查集合中是否存在 boolean compare( List<?> list, Set<?> set ){ if( list.size() != set.size() ){ System.out.p
boolean compare( List<?> list, Set<?> set ){
if( list.size() != set.size() ){
System.out.println( "different sizes" );
return false;
for( Object obj: list ){
if( ! set.contains( obj ) ){
System.out.println( obj + "not in set" );
return false;
}
}
return true;
}
布尔比较(列表、集合){
if(list.size()!=set.size()){
System.out.println(“不同尺寸”);
返回false;
对于(对象对象:列表){
如果(!set.contains(obj)){
系统输出打印项次(obj+“未设置”);
返回false;
}
}
返回true;
}
数组是特殊的。如果有两个数组对象(不是同一个数组对象),则返回false在列表和集合中分别使用相同的元素。对于两个不同的数组对象,即使它们包含相同的元素,equals也不会返回true。A
set
永远不能等于Alist
。它们是完全不同的东西。但是set
可以具有相同的大小并包含所有相同的元素作为列表
:
set.size().equals(list.size()) && set.containsAll(list));
尝试等于,包含并重写等于(),注意有效,仍在尝试。您永远不能使列表和集合相等。您必须比较每个元素并得出它们相等的结论,或者必须首先将列表转换为集合,并将集合与集合进行比较。