在 Scala 中迭代 java.util.BitSet

Iterate over java.util.BitSet in Scala

在 Scala 中迭代 java BitSet 的最佳答案是什么?

我目前有这个:

var setBit = -1
Iterator.continually { setBit = bitSet.nextSetBit(setBit + 1); setBit }
      .takeWhile(_ >= 0)

最容易接受的方法是什么? 我对这种方法没有信心的原因是可变的 setBit 声明和 setBit = bitSet.nextSetBit(setBit + 1); setBit 部分。

使用 .iterate 而不是 .continually。那么就不需要可变的 var.

Iterator.iterate(bitSet.nextSetBit(0))(x => bitSet.nextSetBit(x+1))
        .takeWhile(_ >= 0)