Collections和CollectionUtils集合操作

0.引入依赖

复制代码
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

一.Collections用法:

01、排序操作

  • reverse(List list):反转顺序
  • shuffle(List list):洗牌,将顺序打乱
  • sort(List list):自然升序
  • sort(List list, Comparator c):按照自定义的比较器排序
  • swap(List list, int i, int j):将 i 和 j 位置的元素交换位置

02、查找操作

  • binarySearch(List list, Object key):二分查找法,前提是 List 已经排序过了
  • max(Collection coll):返回最大元素
  • max(Collection coll, Comparator comp):根据自定义比较器,返回最大元素
  • min(Collection coll):返回最小元素
  • min(Collection coll, Comparator comp):根据自定义比较器,返回最小元素
  • fill(List list, Object obj):使用指定对象填充
  • frequency(Collection c, Object o):返回指定对象出现的次数

04、不可变集合

  • emptyXxx():制造一个空的不可变集合
  • singletonXxx():制造一个只有一个元素的不可变集合
  • unmodifiableXxx():为指定集合制作一个不可变集合

二.CollectionUtils用法

01.集合判空

java 复制代码
List<Integer> list = new ArrayList<>();
        list.add(2);
        list.add(1);
        list.add(3);
CollectionUtils.isEmpty(list);

02.对两个集合进行操作

java 复制代码
//获取并集
        Collection<Integer> unionList = CollectionUtils.union(list, list2);
        System.out.println(unionList);

//获取交集
        Collection<Integer> intersectionList = CollectionUtils.intersection(list, list2);
        System.out.println(intersectionList);

//获取交集的补集
        Collection<Integer> disjunctionList = CollectionUtils.disjunction(list, list2);
        System.out.println(disjunctionList);

//获取差集
        Collection<Integer> subtractList = CollectionUtils.subtract(list, list2);
        System.out.println(subtractList);
相关推荐
Java微观世界3 分钟前
Object核心类深度剖析
java·后端
MrSYJ8 分钟前
为什么HttpSecurity会初始化创建两次
java·后端·程序员
hinotoyk13 分钟前
TimeUnit源码分享
java
AAA修煤气灶刘哥1 小时前
Java+AI 驱动的体检报告智能解析:从 PDF 提取到数据落地全指南
java·人工智能·后端
wxy3191 小时前
嵌入式LINUX——————TCP并发服务器
java·linux·网络
★YUI★2 小时前
学习游戏制作记录(玩家掉落系统,删除物品功能和独特物品)8.17
java·学习·游戏·unity·c#
微小的xx2 小时前
java + html 图片点击文字验证码
java·python·html
mask哥2 小时前
详解flink java基础(一)
java·大数据·微服务·flink·实时计算·领域驱动
克拉克盖博2 小时前
chapter03_Bean的实例化与策略模式
java·spring·策略模式
DashVector2 小时前
如何通过Java SDK分组检索Doc
java·数据库·面试