【问题标题】:Scala mutable.BitSet intersection performanceScala mutable.BitSet 交集性能
【发布时间】:2013-10-04 14:31:21
【问题描述】:

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

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

(alpha intersect beta).nonEmpty

(alpha & beta).nonEmpty

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

有没有更好的办法?

TIA 尼瓦格

【问题讨论】:

    标签: performance scala bitset


    【解决方案1】:

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

    alpha find (beta.contains) isDefined
    

    更好的是,使用exists 方法。

    alpha exists (beta.contains)
    

    更短更好,使用BitSetapply 方法,它等效于它的contains 方法。

    alpha exists beta
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-14
      • 2023-03-18
      • 2017-04-03
      • 2017-09-24
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 2020-01-13
      相关资源
      最近更新 更多