2013-09-28 54 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