• CollectionUtils常用方法


    1.交集

    List<Integer> list1=Arrays.asList(1,2,3);
    List<Integer> list2=Arrays.asList(3,4,5);
    
    //list1  ∩ list2
    System.out.println(CollectionUtils.intersection(list2, list1)); //[3]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.差集

    List<Integer> list1=Arrays.asList(1,2,3);
    List<Integer> list2=Arrays.asList(3,4,5);
    
    //list1-list2(list1中删除list2共有数据) 
    System.out.println(CollectionUtils.subtract(list1, list2));//[1,2]
    
    //list2-list1差集(list2中删除list1共有数据)
    System.out.println(CollectionUtils.subtract(list2, list1)); //[4,5]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.并集

    List<Integer> list1=Arrays.asList(1,2,3);
    List<Integer> list2=Arrays.asList(3,4,5);
    
    //list1  ∪ list2
    System.out.println(CollectionUtils.union(list2, list1)); //[1,2,3,4,5]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.交集的补集

    List<Integer> list1=Arrays.asList(1,2,3);
    List<Integer> list2=Arrays.asList(3,4,5);
    
    // (list1 + list2) - (list1  ∪ list2)
    System.out.println(CollectionUtils.disjunction(list2, list1)); //[]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5.集合元素是否相等

    List<Integer> list1=Arrays.asList(1,2,3);
    List<Integer> list2=Arrays.asList(3,4,5);
    
    // list1 == list2
    System.out.println(CollectionUtils.isEqualCollection(list2, list1)); //false
    
    List<Integer> list3=Arrays.asList(1,2,3);
    List<Integer> list4=Arrays.asList(3,2,1);
    
    // list3 == list4
    System.out.println(CollectionUtils.isEqualCollection(list3, list4)); //true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    6.集合判空

    List<Integer> list1=Arrays.asList(1,2,3);
    
    System.out.println(CollectionUtils.isEmpty(list1));    //false
    System.out.println(CollectionUtils.isNotEmpty(list1)); //true
    
    • 1
    • 2
    • 3
    • 4

    7.是否包含任一

    List<Integer> list1 = Arrays.asList(1,2,3);
    List<Integer> list2 = Arrays.asList(3,2,1);
    List<Integer> list3 = Arrays.asList(3);
    List<List<Integer>> all = Lists.newArrayList(list1,list2,list3);
    
    System.out.println(CollectionUtils.containsAny(all,list1,list2));//true
    System.out.println(CollectionUtils.containsAny(list1,4,5));//false
    System.out.println(CollectionUtils.containsAny(list1,2,4));//true
    System.out.println(CollectionUtils.containsAny(list2,list1));//true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    8.是否包含全部

    List<Integer> list1=Arrays.asList(1,2,3);
    List<Integer> list2=Arrays.asList(3,4,5);
    
    // list1.sort() == list2.sort()
    System.out.println(CollectionUtils.containsAll(list1, list2)); //false
    
    
    List<Integer> list3=Arrays.asList(1,2,3);
    List<Integer> list4=Arrays.asList(3,2,1);
    
    // list3.sort() == list4.sort()
    System.out.println(CollectionUtils.containsAll(list3, list4)); //true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    9.是否为子集

    List<Integer> list1=Arrays.asList(1,2,3);
    List<Integer> list2=Arrays.asList(3,4,5);
    
    // list1.sort().contains(list2.sort())
    System.out.println(CollectionUtils.isSubCollection(list1, list2)); //false
    
    
    List<Integer> list3=Arrays.asList(1,2,3);
    List<Integer> list4=Arrays.asList(3,2,1);
    
    // list3.sort().contains(list4.sort())
    System.out.println(CollectionUtils.isSubCollection(list3, list4)); //true
    System.out.println(CollectionUtils.containsAll(list3, list4));//true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    【区分vue2和vue3下的element UI MessageBox 弹框组件,分别详细介绍属性,事件,方法如何使用,并举例】
    IPv6详解
    记录最近两次java内存过高的分析
    获得微店商品详情 API
    TotalFinder v1.15.1(Finder代替工具)
    成为优秀自动化测试工程师的7个步骤
    云原生-FRP内网穿透(详解)使用云服务器将内网集群服务暴露至公网(二)
    电厂数据可视化三维大屏展示平台加强企业安全防范
    [附源码]java毕业设计小区物业管理系统论文
    Android Kotlin 协程初探
  • 原文地址:https://blog.csdn.net/weixin_42311968/article/details/133068968