Scala mutable.BitSet交集性能

时间:2013-09-28 09:03:30

标签: performance scala bitset

我正在尝试编写一个使用可变BitSets保持状态的回溯算法,它工作正常,但我希望它更快!

关键是两个可变的.BitSet alpha和beta我需要计算alpha的任何位是否设置为beta,即按位AND。我不需要结果集只需要知道交集是否为NonEmpty

(alpha intersect beta).nonEmpty

(alpha & beta).nonEmpty

但是这两个构造了一个集合,然后测试它的大小...我真的只需要一个布尔值,并且希望避免构造中间集的成本。

有更好的方法吗?

TIA Nivag

1 个答案:

答案 0 :(得分:2)

参考API docs,您可以使用findcontains方法。

alpha find (beta.contains) isDefined

更好的是,使用exists方法。

alpha exists (beta.contains)

更短更好,使用BitSetapply方法,相当于contains方法。

alpha exists beta