为了账号安全,请及时绑定邮箱和手机立即绑定

如何计算两个集合的交点?

如何计算两个集合的交点?

浮云间 2019-11-11 14:05:33
说,有两个哈希集,如何计算它们的交集?Set<String> s1 = new HashSet<String>();Set<String> s2 = new HashSet<String>();S1 INT S2 ?
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

使用以下retainAll()方法Set:


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()说,这正是你想要的:


仅保留此集合中包含在指定集合中的元素(可选操作)。换句话说,从该集合中移除所有未包含在指定集合中的元素。如果指定的集合也是一个集合,则此操作会有效地修改此集合,以使其值为两个集合的交集。


查看完整回答
反对 回复 2019-11-11
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

是的,有retainAll签出这个


Set<Type> intersection = new HashSet<Type>(s1);

intersection.retainAll(s2);


查看完整回答
反对 回复 2019-11-11
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

对于任何想在另一个Collection上使用keepAll的人来说,这只是一个注释,例如具有重复元素的列表。根据集合的内容,您可能会抛出UnsupportedOperationException,并且它也不会正确过滤频率(它会在左侧多集中保留所有出现的值,无论它在右侧多集中发生了多少次)。

查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 418 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信