performance - Scala mutable.BitSet 交集性能

标签 performance scala bitset

我正在尝试编写一个使用可变位集保持状态的回溯算法,它工作得很好,但我希望它运行得更快!

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

(alpha intersect beta).nonEmpty

(alpha & beta).nonEmpty

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

有更好的方法吗?

TIA 尼瓦格

最佳答案

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

alpha find (beta.contains) isDefined

更好的是,使用 exists 方法。

alpha exists (beta.contains)

甚至更短更好,使用 BitSetapply 方法这相当于它的 contains 方法。

alpha exists beta

关于performance - Scala mutable.BitSet 交集性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19065230/

相关文章:

python - Eigen + MKL 或 OpenBLAS 比 Numpy/Scipy + OpenBLAS 慢

python - 如何减少方位角计算标准差的执行时间

java - 从 java 访问 scala 对象字段

bitset 传递给函数的 C++ vector

php - 使用位码

c++ - priority_queue 在 Debug模式下变得非常慢

optimization - 通过 XLS 操作提高性能

scala - 如何编写绑定(bind)集合类型和元素类型的通用 Scala 增强方法?

Scala:添加到 Map 的奇怪现象

java - BitSet 的 set 方法如何处理向左移动的位?