java - 找到5组交集的有效方法

标签 java algorithm sorting set

我有 5 个具有数值的集合。我有兴趣找到所有 5 个集合的交集。

现在,我想到了以下几点

Do a Collections.sort() on all 5 sets

找到最短的集合并做一个

shortestSet.retainAll(otherSet); 

在所有其他集合上。

有没有更有效的方法?

最佳答案

如果我们理解当您编写 Collections.sort() 时您正在根据集合的大小对集合列表进行排序,那么您的解决方案对我来说是正确的。基本原理是,如果我们要使用 set1.retainAll(set2)(并且如果集合是 HashSet),每个交叉点运行时间应该大致呈线性set1 的元素数量。因此,从最小的开始是有意义的。

关于java - 找到5组交集的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16242596/

相关文章:

java - 使用回收器在 android Studio 中获取 NullPointerException

java - 我可以对多个发布者和只有一个订阅者使用 Pub/Sub 模型吗?

java - 线程结束监听器。 java

python - 对哈希表进行排序并同时打印键和值

c# - 获取表单的所有文本框,其名称按升序排列

javascript - 计算数组中有多少个具有特定名称的条目并保存以供以后使用

java - 单例、线程和同步

c - 理解 strlen 实现中的代码

获得将 N 项拆分为 K 箱的所有组合的算法

algorithm - PKI HSM 模拟器