枚举可比,这意味着您可以拥有

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

我想知道是否有一个原因,枚举集合不可导航(和排序)。即我想念什么吗?

最佳答案

我最好的猜测是,可导航性并未被视为枚举集的主要用例。在实现中,没有什么会阻止可导航性。 TreeSetTreeMap涵盖了将一组枚举成员的需要与可导航性结合在一起的罕见用例。

07-24 22:23