是否存在与EnumSet/EnumMap相当的Scala?

Pet*_*lák 12 enums scala set scala-collections

在Java中,我们有两个很好的类:EnumSet用于enums的集合和EnumMap用于键的映射enum.EnumSet表示为64位字(或64位字的数组)和EnumMap值的数组,均由enums 的序数索引.因此插入/查找/删除/ ...操作只需要O(1)时间.

我们在Scala中有类似的东西 - 可变或不可变吗?

我发现BitSet(可变和不可变)对整数进行操作,所以我假设有一组有效的实现Enumeration.Value由它支持.但我发现只有Enumeration.ValueSet,它由SortedSet [Int]支持.虽然这并不是那么糟糕,BitSet但为此目的似乎更有效率.

我没有找到任何优化的地图实现与Enumeration.Value类似的键EnumMap.

som*_*ytt 5

实际上,在2.10 Enumeration.ValueSet中使用了BitSet.

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

那就是这里.

  • 还有一个"EnumMap"等价物吗? (5认同)