12

Javaには、 sのEnumSetセット用とキーがsであるマップ用の2つの優れたクラスがあります。は64ビットワード(または64ビットワードの配列)および値の配列として表され、どちらもsの序数でインデックス付けされます。したがって、挿入/ルックアップ/削除/ ...操作にはO(1)時間しかかかりません。enumEnumMapenumEnumSetEnumMapenum

Scalaにそのようなものがありますか?可変または不変ですか?

整数で動作するBitSet (可変と不変の両方)を見つけたので、のセットの効率的な実装があると思いましたEnumerationValuesそれによってバックアップされます。しかし、SortedSet[Int]によってバックアップされてEnumeration.ValueSetいるのみが見つかりました。それはそれほど悪くはありませんが、この目的にはかなり効率的であるようです。BitSet

Enumeration.Valueに似たキーを持つマップの最適化された実装は見つかりませんでしたEnumMap

4

1 に答える 1

5

実際、2.10ではEnumeration.ValueSetはBitSetを使用します。

class ValueSet private[ValueSet] (private[this] var nnIds: immutable.BitSet)

それはここにあります。

于 2012-11-17T21:28:55.773 に答える