Does a TreeMap's entrySet() return a TreeSet

Emil picture Emil · Aug 26, 2010 · Viewed 7.8k times · Source

Does the entrySet() function that is called from a treemap instance return a TreeSet of entry's or simply a set of entry's.Is the order ensured?

Instead of getting it as a set of entry's how can a get a list of entry's in order?

Answer

Sean Patrick Floyd picture Sean Patrick Floyd · Aug 26, 2010

It's the other way around: a TreeSet uses a TreeMap internally. (See first sentence of the TreeSet docs)

There's not much Sun java source code I can find on the web to link to, but here are some oldish versions:

As you can see, TreeMap defines an inner class called TreeMap.EntrySet which just extends AbstractSet. And no, it does not implement SortedSet (which would otherwise probably be specified by the SortedMap.entrySet() contract).

But to answer the actual question: yes, the order is ensured as specified in the SortedMap.entrySet() contract.


Update: JavaDoc links updated for Java 8, sources are still Java 6