如何判断2个集合的元素都是否相等,可以参考下面的代码
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("1");
list1.add("2");
List<String> list2 = new ArrayList<>();
list2.add("2");
list2.add("1");
List<Integer> list3 = new ArrayList<>();
list3.add(1);
list3.add(2);
List<Integer> list4 = new ArrayList<>();
list4.add(2);
list4.add(1);
List<Integer> list5 = new ArrayList<>();
list5.add(1);
list5.add(2);
List<Integer> list6 = new ArrayList<>();
list6.add(1);
list6.add(2);
boolean isEqual = list1.equals(list2), isEqual2 = list3.equals(list4), isEqual3 = list5.equals(list6); // 调用 equals() 方法进行比较
boolean isEqual21 = list1.containsAll(list2), isEqual22 = list3.containsAll(list4), isEqual23 = list5.equals(list6);
List<Integer> list7 = new ArrayList<>();
list7.add(1);
list7.add(2);
list7.add(3);
List<Integer> list8 = new ArrayList<>();
list8.add(1);
list8.add(2);
boolean isEqual31 = list7.containsAll(list8),isEqual32 = list8.containsAll(list7);
System.out.println("1、2两个集合是否相等:" + isEqual + ",3、4两个集合是否相等:" + isEqual2+ ",5、6两个集合是否相等:" + isEqual3);
System.out.println("1、2两个集合是否相等2:" + isEqual21 + ",3、4两个集合是否相等2:" + isEqual22+ ",5、6两个集合是否相等2:" + isEqual23);
System.out.println("7、8两个集合是否相等31:" + isEqual31+ ",7、8两个集合是否相等32:" + isEqual32 );
}
结果:
1、2两个集合是否相等:false,3、4两个集合是否相等:false,5、6两个集合是否相等:true
1、2两个集合是否相等2:true,3、4两个集合是否相等2:true,5、6两个集合是否相等2:true
7、8两个集合是否相等31:true,7、8两个集合是否相等32:false
用equals方法改下顺序就不相等了,containsAll方法则需要两两比对才能输出正确的结果
boolean isEqual41 = list7.containsAll(list8) && list8.containsAll(list7),isEqual42=list3.containsAll(list4) && list4.containsAll(list3);
System.out.println("7、8两个集合是否相等41:" + isEqual41+ ",3、4两个集合是否相等:" + isEqual42);
7、8两个集合是否相等41:false,3、4两个集合是否相等:true