On 08/12/2011 01:03 AM, Joe Darcy wrote:
Hello.

On 8/11/2011 1:56 PM, Rémi Forax wrote:
On 08/11/2011 10:19 PM, assembling signals wrote:
Hello, community!

Enum does implement Comparable, while EnumSet does NOT implement SortedSet and EnumMap doesn NOT implement SortedMap. Should I file a bug report (RFE), would there be a chance to see this being implemented in JDK8?

I've asked the same question with NavigableSet/Map during the JDK6 timeframe so you should find the answer by Doug Lea on the concurrency-interest list
[email protected]

Furthermore, you can't retrofit EnumSet to implement SortedSet
(an interface that already exists)
because since 1.5, a lot of code was written and some may rely on
the fact that EnumSet doesn't implement SortedSet.

Actually, that is not the sort of compatibility contract we usually worry about enforcing over time. For example, in JDK 7 I retrofitted the java.io.Closeable interface to several long-standing classes with close methods that were not retrofitted before.

Cheers,

-Joe

Hi Joe, I disagree,
SortedSet is not Closeable.

It's not rare to use instanceof to check the interface implemented by a collections
to guarantee the complexity of an algorithm.
It's a common trick, and there is no better alternative.

Most operations on an EnumSet are done in O(1),
most implementations of SortedSet offers operations that are done in O(ln n).

If you retrofit EnumSet to implement SortedSet, the risk to change the complexity
of an existing algorithm is far from negligible.

cheers,
Rémi

Reply via email to