リストマップ 具象不変コレクションクラス 赤黒木 不変ビット集合 目次
最新版は Scala Documentation に移行しました。

不変ビット集合

ビット集合 (BitSet) は大きい整数のビットを小さな整数のコレクションを使って表す。例えば、3, 2, と 0 を格納するビット集合は二進法で整数の 1101、十進法で 13 を表す。

内部では、ビット集合は 64ビットの Long の配列を使っている。配列の最初の Long は 整数の 0〜63、二番目は 64〜127 という具合だ。そのため、ビット集合は最大値が数百以下の場合は非常にコンパクトだ。

ビット集合の演算はとても高速だ。所属判定は一定数時間で行われる。集合への要素の追加は、ビット集合の配列内の Long の数に比例するが、普通は小さい数だ。以下にビット集合の使用例を示す:

scala> val bits = scala.collection.immutable.BitSet.empty
bits: scala.collection.immutable.BitSet = BitSet()
scala> val moreBits = bits + 3 + 4 + 4
moreBits: scala.collection.immutable.BitSet = BitSet(3, 4)
scala> moreBits(3)
res26: Boolean = true
scala> moreBits(0)
res27: Boolean = false

続いては、リストマップ


リストマップ 具象不変コレクションクラス 赤黒木 不変ビット集合 目次