EnumMap<K extends Enum<K>, V>
Java中的Java显然是按相关枚举的定义排序的,正如您在Javadoc中也可以看到的那样:
枚举映射按其键的自然顺序(声明枚举常量的顺序)进行维护。这反映在集合视图返回的迭代器中(keySet()
,entrySet()
,和values()
)。
我需要的是SortedMap
使用枚举作为键类型。我想使用诸如headMap()
或的方法firstKey()
,但是我想从的cpu +内存性能中受益EnumMap
s的。一个TreeMap
听起来像是太多的开销在这里。
问题:这只是在实现中遗漏了吗?AbstractMap
是懒惰(源自)还是有充分的理由为什么EnumMap
不是SortedMap
?
那么TreeSet呢?
—
Mohammed Deifallah
@MohammedDeifallah这是完全不同的,它没有键...是
—
deHaar
TreeMap
什么意思?
感谢您提供的快速答复,我补充道,我发现TreeMap在这里的开销太大,再加上O(log n)进行查询。但是我的问题当然也适用于EnumSet和SortedSet,这是同样的问题。
—
rawcode
@Amongalen:您的回答符合我的问题,即使它没有回答根本原因,除了“ Oracle不会模糊您的关心”。谷歌甚至没有找到您提到的OpenJDK问题,因此至少它可以帮助其他遇到相同问题的人。
—
rawcode