2013-09-28 36 views
2

我想写一个回溯算法,保持状态使用可变的BitSets,它工作正常,但我希望它走得更快!斯卡拉mutable.BitSet交集性能

关键是给出两个mutable.BitSet alpha和beta我需要计算是否有任何的alpha位设置为beta,即按位AND。我不需要得到的设置只需要知道在路口isNonEmpty

(alpha intersect beta).nonEmpty 

(alpha & beta).nonEmpty 

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

有没有更好的方法?

TIA Nivag

回答

2

参照API docs,你可以使用findcontains方法。

alpha find (beta.contains) isDefined 

OR

更妙的是,使用exists方法。

alpha exists (beta.contains) 

OR

甚至更​​短的和更好的,使用的BitSetapply方法即相当于其contains方法。

alpha exists beta