【问题标题】:Intersection with Java collection [duplicate]与 Java 集合的交集 [重复]
【发布时间】:2014-09-17 11:25:48
【问题描述】:
我正在寻找许多关于如何在有效时间内获得 2 组交集的查询。
并寻找非常有效的方法。在采用我自己的方式之前,为什么不能要求 Java 构建一个方法来执行相同的操作。
为什么 Java 没有在 Collections 类(如 sort 方法或 Collections 中的某个位置)上构建类似交集的方法?这背后有什么原因吗?
请考虑这是关于集合上相交的拟合下降的讨论。
谢谢,
【问题讨论】:
标签:
java
collections
set-intersection
【解决方案1】:
您必须在 2 个集合之间找到最接近的交点是 retainAll()。请注意,retainAll 不会返回包含交集的新 Set,而是修改调用它的集合实例。例如:
import java.util.HashSet;
import java.util.Set;
class Test2
{
public static void main(String[] args) {
Set<String> set1 = new HashSet<>();
set1.add("A");
set1.add("B");
Set<String> set2 = new HashSet<>();
set2.add("A");
set2.add("D");
set1.retainAll(set2);
System.out.println(set1);
}
}