相关文章推荐
刚分手的鼠标  ·  js switch case和if ...·  5 月前    · 
任性的山羊  ·  虚幻引擎 - 知乎·  1 年前    · 

java比较两个list是否包含

Java中有几种方法可以比较两个List是否包含相同的元素:

  • 使用 Collection.retainAll() 方法,该方法会在第一个集合中保留与第二个集合相同的元素。如果第一个集合中的元素个数为0,则表明两个集合不包含相同的元素。
  • 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("两个集合不包含相同的元素");
    

    请注意,上述第一种和第三种方法在比较过程中会改变原集合。

  •