java中如何求两个集合的交集和并集

java中如何求两个集合的交集和并集

作者:Elara发布时间:2026-02-04阅读时长:0 分钟阅读次数:1

用户关注问题

Q
怎样在 Java 中查找两个集合的交集?

我有两个集合,想找出它们共有的元素,有没有简单的方法来实现集合的交集?

A

使用 retainAll 方法求集合交集

Java 集合框架提供了 retainAll 方法,可以用来获取两个集合的交集。具体做法是将一个集合调用 retainAll,并传入另一个集合作为参数,结果集合就只包含两个集合中共有的元素。例如,使用 List 或 Set 都可以。

Q
Java 中如何合并两个集合而不重复?

我想把两个集合合并成一个集合,且不包含重复元素,应该怎样实现集合的并集?

A

通过 addAll 方法获得集合并集

Java 集合中可以使用 addAll 方法将一个集合的所有元素添加到另一个集合中。为避免重复,可以使用 Set 实现类(如 HashSet),因为 Set 不允许重复元素。先将第一个集合转换为 Set,再调用 addAll 添加第二个集合,得到的集合即为并集。

Q
如何使用 Java 8 Stream API 计算集合的交集和并集?

有没有基于 Stream 的更现代的方法来得到两个集合的交集和并集?

A

利用 Stream API 进行集合操作

Java 8 引入的 Stream API 可以简化集合操作。交集可以通过 filter 结合 contains 方法实现,保留出现在另一个集合中的元素,示例如 list1.stream().filter(list2::contains).collect(Collectors.toList())。并集可以使用 Stream.concat 合并两个集合的流,再用 distinct 去重,示例如 Stream.concat(list1.stream(), list2.stream()).distinct().collect(Collectors.toList())。