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