如何计算两个集合的交集?
2022-08-31 05:29:06
可能的重复:
有效地查找可变数量的字符串集的交集
比如说,有两个哈希集,如何计算它们的交集?
Set<String> s1 = new HashSet<String>();
Set<String> s2 = new HashSet<String>();
S1 INT S2 ?
可能的重复:
有效地查找可变数量的字符串集的交集
比如说,有两个哈希集,如何计算它们的交集?
Set<String> s1 = new HashSet<String>();
Set<String> s2 = new HashSet<String>();
S1 INT S2 ?
使用 set 的 retainAll()
方法
:
Set<String> s1;
Set<String> s2;
s1.retainAll(s2); // s1 now contains only elements in both sets
如果要保留集合,请创建一个新集合来保存交集:
Set<String> intersection = new HashSet<String>(s1); // use the copy constructor
intersection.retainAll(s2);
的 javadoc 说它正是你想要的:retainAll()
仅保留此集合中包含在指定集合中的元素(可选操作)。换句话说,从此集合中删除其指定集合中未包含的所有元素。如果指定的集合也是一个集合,则此操作将有效地修改此集合,使其值是两个集合的交集。