Pet*_*rey 34 java collections enums
Enum是可比较的,这意味着你可以拥有
NavigableSet<AccessMode> modes = new TreeSet<>();
NavigableMap<AccessMode, Object> modeMap = new TreeMap<>();
Run Code Online (Sandbox Code Playgroud)
它们具有O(ln N)个访问时间.
Enum集合具有O(1)访问时间,但不可导航
NavigableSet<AccessMode> modes = EnumSet.noneOf(AccessMode.class); // doesn't compile
NavigableMap<AccessMode, Object> modeMap = new EnumMap<>(AccessMode.class); // doesn't compile
Run Code Online (Sandbox Code Playgroud)
我想知道Enum集合是否不可导航(和排序)是有原因的.我错过了什么?
Luk*_*der 39
JDK及其各种API缺少许多"明显"的功能.为什么忽略/遗忘这个特殊功能?我们只能猜测.但是你的问题长期以来一直是Sun/Oracle的RFE:
您可以通过评论来支持这些RFE.请注意,这是Joshua Bloch关于这个主题的权威答案:
我模糊地回忆起考虑它,但我不记得我们是否有充分理由明确拒绝它.当我实现EnumSet和EnumMap时,我们的运行时间很短,而且时间可能在我们的决策中起作用
http://comments.gmane.org/gmane.comp.java.jsr.166-concurrency/2158
所以即使他不得不猜测:-)