我有两个对象,一个是列表(变量a = 10,b =数组,c =对象),另一个被设置(变量a = 10,b =数组,c =对象),我想检查列表和集合的内容是否等于?请让我知道如何检查这一点。在此先感谢:)
答案 0 :(得分:1)
首先,比较大小,然后迭代列表并检查集合中是否存在。
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;
}
阵列很奇特。如果列表和集合中分别有两个数组对象(不是相同的数组对象),则返回false。对于两个不同的数组对象,equals永远不会返回true,即使它们包含相同的元素。
答案 1 :(得分:1)
Set
永远不能等于List
。它们是完全不同的东西。但是Set
可以具有相同的大小,并且包含与List
相同的所有元素:
set.size().equals(list.size()) && set.containsAll(list));