Java List 集合取 交集、并集、差集
1. 概述
在工作中,经常会遇到对list集合取交集、并集、差集的时候,本文在这里提供了一些方法
概念定义:
- 交集: 取2个集合中,相同的部分 ;
- 并集: 将2个集合,合并为一个集合;
- 差集: 取2个集合中,不相同的部分 (A差集 B,取 A中与B不相同的元素)
首先我们定义两个list集合, 通过循环都可以实现上述集合运算,因此通过循环方法本文就不列出了。
ArrayList<Integer> list1 = new ArrayList<Integer>(Arrays.asList(1, 2, 3));
ArrayList<Integer> list2 = new ArrayList<Integer>( Arrays.asList(3,4,5));
2. 交集
- 通过CollectionUtils工具包 (推荐),需要引入CollectionUtils 工具包
// 引入的包
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
// 代码
Collection intersection = CollectionUtils.intersection(list1, list2);
System.out.println("intersection CollectionUtils 交集结果是: " + intersection);
- 通过retainAll方法,会修改原集合
list1.retainAll(list2);
System.out.println("intersection retainAll 方法 交集结果是: " + list1);
3 并集
- 通过CollectionUtils工具包 (推荐),需要引入CollectionUtils 工具包
// 引入的包
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
// 代码
Collection union = CollectionUtils.union(list1, list2);
System.out.println("CollectionUtils 并集结果是: " + union);
- 通过set合并
Set<Integer> unionSet = new HashSet<>();
unionSet.addAll(list1);
unionSet.addAll(list2);
System.out.println("set 并集结果是:" + unionSet);
4. 差集
- 通过CollectionUtils工具包 (推荐),需要引入CollectionUtils 工具包
// 引入的包
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
// 代码
Collection subtract = CollectionUtils.subtract(list1, list2);
System.out.println("CollectionUtils 差集结果是: " + subtract);
- 通过reoveAll方法,会修改原集合
list1.removeAll(list2);
System.out.println("removeAll 差集结果是: " + list1);
参考:
https://blog.csdn.net/HaHa_Sir/article/details/126111603
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!