• 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
  • 相关阅读:
    Redis中的SDS理解
    Electron+Vue开源软件:洛雪音乐助手V2.8畅享海量免费歌曲
    项目实战 Java读取Excel数据
    前端面试考核点【更持续新中】
    LFS学习系列2 — 总览
    高级深入--day37
    C++数据结构补充(双向链表)
    合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(三)
    数据结构与算法(C语言版)P1---算法效率
    13-H5新特性
  • 原文地址:https://blog.csdn.net/weixin_42311968/article/details/133068968