Java リストのオブジェクト比較:値の一致を確認する方法

Javaで2つのリストのオブジェクトの値を比較する方法はいくつかあります:

  1. List内のオブジェクト値を比較するには、equals()メソッドを使用します。両方のリストを走査してオブジェクトを1つずつ比較するか、リストのequals()メソッドを直接使用することができます。
List<Object> list1 = new ArrayList<>();
List<Object> list2 = new ArrayList<>();

// 添加对象到list1和list2中

if(list1.equals(list2)){
    System.out.println("两个List中的对象值相等");
} else {
    System.out.println("两个List中的对象值不相等");
}
  1. CollectionsのcontainsAll()メソッドを使用して、2つのリストのオブジェクトの値が等しいかどうかを比較します。このメソッドは、リスト内の要素が同じかどうかを比較し、要素の順序は考慮しません。
List<Object> list1 = new ArrayList<>();
List<Object> list2 = new ArrayList<>();

// 添加对象到list1和list2中

if(list1.size() == list2.size() && list1.containsAll(list2)){
    System.out.println("两个List中的对象值相等");
} else {
    System.out.println("两个List中的对象值不相等");
}
  1. Stream APIを使用して比較します。2つのリストのオブジェクトをStreamに変換し、その後、Streamのequals()メソッドを使用して2つのStreamが等しいかどうかを比較できます。
List<Object> list1 = new ArrayList<>();
List<Object> list2 = new ArrayList<>();

// 添加对象到list1和list2中

boolean isEqual = list1.stream()
                        .allMatch(obj -> list2.contains(obj)) 
                        && list2.stream()
                                .allMatch(obj -> list1.contains(obj));

if(isEqual){
    System.out.println("两个List中的对象值相等");
} else {
    System.out.println("两个List中的对象值不相等");
}
bannerAds