Java中如何使用retainAll保留集合交集元素

retainAll方法用于保留两个集合的交集并修改原集合,返回是否发生修改。示例中list1.retainAll(list2)后仅保留共同元素3、4;Set操作同理,需注意元素的equals实现、NULL检查及List重复元素处理,使用时应先复制集合以保留原始数据。

Java中如何使用retainAll保留集合交集元素

Java中,retainAll 方法用于保留当前集合与另一个集合的交集元素,即:只保留同时存在于两个集合中的元素。调用该方法后,原集合会被修改。

retainAll 基本语法

Boolean retainAll(Collection> c)

该方法从调用集合中移除所有不在参数集合 c 中的元素。执行后,集合仅包含交集部分。如果集合发生修改,返回 true,否则返回 false

使用示例:List 保留交集

假设我们有两个 List 集合,想让第一个集合只保留和第二个集合共有的元素:

List list1 = new ArrayList(Arrays.asList(1, 2, 3, 4)); List list2 = new ArrayList(Arrays.asList(3, 4, 5, 6)); list1.retainAll(list2); System.out.println(list1); // 输出 [3, 4]

执行后,list1 被修改为仅包含 3 和 4,这两个元素是两个列表的交集。

立即学习Java免费学习笔记(深入)”;

Java中如何使用retainAll保留集合交集元素

集简云

软件集成平台,快速建立企业自动化与智能化

Java中如何使用retainAll保留集合交集元素22

查看详情 Java中如何使用retainAll保留集合交集元素

使用 Set 进行高效交集操作

Set 天然去重,适合做交集运算。例如:

Set set1 = new HashSet(Arrays.asList(“a”, “b”, “c”)); Set set2 = new HashSet(Arrays.asList(“b”, “c”, “d”)); set1.retainAll(set2); System.out.println(set1); // 输出 [b, c]

结果中只保留了共同存在的元素。注意:HashSet 不保证顺序,如需有序可用 LinkedHashSet

注意事项

  • retainAll 会直接修改原集合,如需保留原始数据,应先复制集合。
  • 集合中的元素类型需正确实现 equals 方法,否则比较可能出错。
  • 传入的集合不能为 null,否则抛出 NullPointerException
  • 对于 List,重复元素可能影响结果。retainAll 会根据实际存在情况保留匹配项。

基本上就这些。retainAll 是求交集的便捷方式,适用于 List、Set 等常见集合类型,理解其修改原集合的特性很重要。

暂无评论

发送评论 编辑评论


				
上一篇
下一篇
text=ZqhQzanResources