Enum is Comparable which means you can have
NavigableSet<AccessMode> modes = new TreeSet<>();
NavigableMap<AccessMode, Object> modeMap = new TreeMap<>();
These have O(ln N) access times.
The Enum collections have O(1) access times, but are not Navigable
NavigableSet<AccessMode> modes = EnumSet.noneOf(AccessMode.class); // doesn't compile
NavigableMap<AccessMode, Object> modeMap = new EnumMap<>(AccessMode.class); // doesn't compile
I was wondering if there was a reason Enum collections were not Navigable (and Sorted). i.e Am I missing something?
Many "obvious" features are missing from the JDK and its various APIs. Why this particular feature was omitted / forgotten? We can only guess. But your question has been a RFE at Sun/Oracle for a long time:
You could support those RFEs by commenting on them. Note, here's an authoritative answer by Joshua Bloch on the subject:
I vaguely recall considering it, but I can't recall whether we explicitly rejected it with good reason. We were running very low on time when I implemented EnumSet and EnumMap, and it's possible that time played a role in our decision
http://comments.gmane.org/gmane.comp.java.jsr.166-concurrency/2158
So even he had to guess :-)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With