在 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/

10-13 08:03