检查scala set intersection是否为空

时间:2017-01-13 09:00:37

标签: scala set scala-collections

是否有建议的方法来检查两个scala集合Set是否具有非空交集?当然有明显的

set1.intersect(set2).isEmpty

但这实际上是构建了交集,除非我弄错了。有更好/更快的方式吗?

1 个答案:

答案 0 :(得分:3)

惯用的方法是使用.intersect()或.diff(),但两种方式都在内部构建新的集合。

最快的方法是:

  • 手动迭代第一组,直到第二个匹配
  • 使用概率布隆过滤器需要一些时间来构建它,但可以非常快地比较两组(甚至非常大)(偶尔可能会给出误报)