检查scala集合交集是否为空

检查scala集合交集是否为空,scala,set,scala-collections,Scala,Set,Scala Collections,是否有推荐的方法来检查两个scala collectionSets是否有非空的交叉点?当然,这是显而易见的 set1.intersect(set2).isEmpty 但这实际上首先构造了交集,除非我弄错了。有更好/更快的方法吗?惯用的方法是使用.intersect()或.diff(),但这两种方法都在内部构建新集合 最快的方法是: 手动迭代第一个集合,直到第二个集合匹配为止 使用概率Bloom过滤器,它需要一些时间来构建,但可以非常快地比较两个集(甚至非常大)(有时可能会出现误报) 我建议:

是否有推荐的方法来检查两个scala collection
Set
s是否有非空的交叉点?当然,这是显而易见的

set1.intersect(set2).isEmpty

但这实际上首先构造了交集,除非我弄错了。有更好/更快的方法吗?

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

最快的方法是:

  • 手动迭代第一个集合,直到第二个集合匹配为止
  • 使用概率Bloom过滤器,它需要一些时间来构建,但可以非常快地比较两个集(甚至非常大)(有时可能会出现误报)
    • 我建议:

      set1.exists(set2.contains)
      
      虽然不如“set1.intersectionNonEmpty(set2)”可读,但您可以将其理解为“在set1中,存在set2包含的某些元素”