Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查数组列表内容是否等于列表内容_Java - Fatal编程技术网

Java 检查数组列表内容是否等于列表内容

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

我有两个对象,一个是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.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
永远不能等于A
list
。它们是完全不同的东西。但是
set
可以具有相同的大小并包含所有相同的元素作为
列表

set.size().equals(list.size()) && set.containsAll(list));

尝试等于,包含并重写等于(),注意有效,仍在尝试。您永远不能使列表和集合相等。您必须比较每个元素并得出它们相等的结论,或者必须首先将列表转换为集合,并将集合与集合进行比较。