是否有任何原因EnumMap和EnumSet不可导航
问题内容:
枚举可比,这意味着您可以拥有
NavigableSet<AccessMode> modes = new TreeSet<>();
NavigableMap<AccessMode, Object> modeMap = new TreeMap<>();
这些具有O(ln N)访问时间。
枚举集合具有O(1)访问时间,但不可导航
NavigableSet<AccessMode> modes = EnumSet.noneOf(AccessMode.class); // doesn't compile
NavigableMap<AccessMode, Object> modeMap = new EnumMap<>(AccessMode.class); // doesn't compile
我想知道是否有一个原因,枚举集合不可导航(和排序)。即我想念什么吗?
问题答案:
我最好的猜测是,可导航性并未被视为枚举集的主要用例。在实现中,没有什么会阻止可导航性。TreeSet
和涵盖了将一组枚举成员的需要与可导航性结合在一起的罕见用例TreeMap
。