Java中有几种方法可以比较两个List是否包含相同的元素:
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
list1.retainAll(list2);
if (list1.size() == 0) {
System.out.println("两个集合不包含相同的元素");
使用Stream API 中的 anyMatch() 方法,该方法会返回第一个集合中是否有元素在第二个集合中出现过。
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
if (!list1.stream().anyMatch(list2::contains)) {
System.out.println("两个集合不包含相同的元素");
使用Set集合,首先将两个集合都转换为set,然后使用set的retainAll() 方法求交集。
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
Set<Integer> set1 = new HashSet<>(list1);
Set<Integer> set2 = new HashSet<>(list2);
set1.retainAll(set2);
if(set1.isEmpty()) {
System.out.println("两个集合不包含相同的元素");
请注意,上述第一种和第三种方法在比较过程中会改变原集合。