簡體   English   中英

檢查數組列表內容等於列表內容

[英]checking Array List content equals with List contents

我有兩個對象,一個是列表(具有變量a = 10,b = array,c = object),另一個已設置(具有變量a = 10,b = array,c = object),我要檢查是否包含列表和集合是否相等? 請讓我知道如何檢查。 提前致謝 :)

首先,比較大小,然后迭代列表並檢查集合中是否存在。

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。

Set永遠不能等於List 他們是完全不同的東西。 但是Set可以具有相同的大小,並包含與List相同的所有元素:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM