在 Java 中,我们有两个不错的类: EnumSet
用于 enum
s 的集合,EnumMap
用于键为 enum
s 的映射。 EnumSet
表示为 64 位字(或 64 位字的数组),而 EnumMap
表示为值数组,均由 enum
s 的序数索引。所以插入/查找/删除/...操作只需要 O(1) 时间。
我们在 Scala 中是否有类似的东西——可变的或不可变的?
我发现 BitSet(可变和不可变)对整数进行操作,所以我认为 Enumeration
的集合会有一个有效的实现。 Value
由它支持。但我发现只有 Enumeration.ValueSet
,也就是 backed up by SortedSet[Int] 。虽然这还不错,但 BitSet
似乎为此目的更有效。
我没有找到任何优化的 map 实现,其中 Enumeration.Value
作为类似于 EnumMap
的键。
最佳答案
实际上,在 2.10 Enumeration.ValueSet 中使用了 BitSet。class ValueSet private[ValueSet] (private[this] var nnIds: immutable.BitSet)
That would be here.
关于scala - 是否有 EnumSet/EnumMap 的 Scala 等价物?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13433118/