既然我们已经有了HashMap
,为什么还要使用EnumMap
?
Javadoc表示:
枚举映射在内部表示为数组。这种表示非常紧凑和高效。
实现备注:所有基本操作均以恒定时间执行。它们可能(但不保证)比其HashMap对应物更快。
EnumMap
的源代码,以了解在整个“使用空间”事先已知的情况下可以采取的快捷方式(因为 enum
是常量)。 - jensgramint
等受限制的键或值类型的特殊实现(以及其他类型的集合),目的都是为了效率。 - Thiloint index = ((Enum)key).ordinal();
Object oldValue = vals[index];
vals[index] = maskNull(value);