检查数组列表内容等于列表内容

时间:2015-10-12 16:54:31

标签: java

我有两个对象,一个是列表(变量a = 10,b =数组,c =对象),另一个被设置(变量a = 10,b =数组,c =对象),我想检查列表和集合的内容是否等于?请让我知道如何检查这一点。在此先感谢:)

2 个答案:

答案 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));