В Java у нас есть два классных класса: EnumSet
для наборов enum
и EnumMap
для карты с ключами enum
s. EnumSet
представляется как 64-битное слово (или массив из 64-разрядных слов) и EnumMap
как массив значений, индексированных по порядковым номерам enum
s. Поэтому операции insert/lookup/remove/... занимают только время O (1).
Есть ли у нас что-то подобное в Scala - изменяемое или неизменяемое?
Я нашел BitSet (оба изменяемые и неизменяемые), которые работают с целыми числами, поэтому я предположил, что будет эффективная реализация наборов Enumeration
. Value
подкрепляется им. Но я нашел только Enumeration.ValueSet
, который резервную копию SortedSet [Int]. Хотя это не так уж плохо, BitSet
представляется для этой цели более эффективным.
Я не нашел оптимизированной реализации карт с Enumeration.Value
как клавиши, похожие на EnumMap
.