Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does a TreeMap's entrySet() return a TreeSet

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?

like image 259
Emil Avatar asked Aug 26 '10 06:08

Emil


2 Answers

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:

  • TreeSet
  • TreeMap

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

like image 175
Sean Patrick Floyd Avatar answered Sep 17 '22 17:09

Sean Patrick Floyd


From the JavaDoc:

public Set<Map.Entry<K,V>> entrySet()

Returns a Set view of the mappings contained in this map. The set's iterator returns the entries in ascending key order.

like image 42
Thomas Lötzer Avatar answered Sep 17 '22 17:09

Thomas Lötzer