当前位置: 首页 > 面试题库 >

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

秋阳荣
2023-03-14
问题内容

说,有两个哈希集,如何计算它们的交集?

Set<String> s1 = new HashSet<String>();

Set<String> s2 = new HashSet<String>();

S1 INT S2 ?

问题答案:

使用以下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);

该的javadocretainAll()说,这正是你想要的:

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



 类似资料:
  • 我如何找到两个数组共有的值?在这种情况下,应返回和。

  • 有人有关于如何计算两个圆的相交面积的闪亮代码或R代码吗? 图书馆(闪亮) 我的页面 #申请标题标题板(“选择你的可能性”), #侧边栏与滑块输入箱的数量侧边栏布局(侧边栏面板( ))) 库(闪亮)库(plotrix)库(栅格) shinyServer(功能(输入、输出){ 输出$distPlot }) })

  • 问题内容: 我有两台用于ES(2.2.0)的专用计算机。这两台机器具有相同的规格。每个服务器都在Windows Server 2012 R2上运行,并具有128GB内存。关于ES,我计划在群集的每台计算机上有两个节点。 我正在查看elasticsearch.yml,以了解如何配置每个节点以形成集群。 同一网络上的两台机器具有以下服务器名称和IP地址: 我正在查看elasticsearch.yml,

  • 我想有效地计算一个n位数字(在我的例子中,n=36)的所有组合,并且设置了精确的k位。

  • 如果这两个矩阵不是无序的,长度相同,那么下面的代码应该可以工作,并且是有效的。 我的一个老练的解决方案是将我要用于匹配的每个矩阵的各个列串联起来。在本例中,我将使用所有列。 这就是我正在寻找的结果,但我想知道是否有更优雅的东西,比如%中的向量函数

  • 问题内容: 有没有有效的方法来合并具有交集的集合。例如: 预期结果是: 所有具有交集(公共分量)的集合都应合并。例如: 因此,这两个集合应该合并: 不幸的是我没有任何有效的解决方案。 更新:结果集的顺序并不重要。 问题答案: @ mkrieger1在注释中提到的一种实现连接组件算法的有效方法是将集合列表转换为一组可散列的冻结集,以便在迭代时找到与当前集合相交的冻结集。从池中删除它: 鉴于,将变为: