java 集合取交集

1.使用retainAll()方法:

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));

List<Integer> list2 = new ArrayList<>(Arrays.asList(2, 3, 4));

list1.retainAll(list2);

System.out.println(list1); // 输出 [2, 3]

Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3));

Set<Integer> set2 = new HashSet<>(Arrays.asList(2, 3, 4));

set1.retainAll(set2);

System.out.println(set1); // 输出 [2, 3]

2.使用Java 8的stream的filter方法和collect方法:

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(2, 3, 4));
List<Integer> intersection = list1.stream().filter(e -> list2.contains(e)).collect(Collectors.toList());
System.out.println(intersection); // 输出 [2, 3]

相关推荐
似水明俊德2 小时前
02-C#.Net-反射-面试题
开发语言·面试·职场和发展·c#·.net
Leinwin2 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
薛定谔的悦2 小时前
MQTT通信协议业务层实现的完整开发流程
java·后端·mqtt·struts
enjoy嚣士3 小时前
springboot之Exel工具类
java·spring boot·后端·easyexcel·excel工具类
Thera7773 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
罗超驿3 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
炘爚4 小时前
C语言(文件操作)
c语言·开发语言
阿蒙Amon4 小时前
C#常用类库-详解SerialPort
开发语言·c#
盐水冰4 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
凸头4 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言