Gibt ein entrySet () einer TreeMap ein TreeSet zurück?

8

Gibt die Funktion entrySet (), die von einer Treemap-Instanz aufgerufen wird, einen TreeSet-Eintrag oder nur einen Satz von entries zurück. Ist die Reihenfolge sichergestellt?

Anstatt es als eine Reihe von Einträgen zu bekommen, wie kann man eine Liste von Einträgen in der Reihenfolge bekommen?

    
Emil 26.08.2010, 06:57
quelle

3 Antworten

7

Es ist umgekehrt: Ein TreeSet verwendet intern eine TreeMap. (Siehe ersten Satz der TreeSet-Dokumentation )

Es gibt nicht viel Sun-Java-Quellcode, den ich im Internet finden kann, aber hier sind einige ältere Versionen:

Wie Sie sehen, definiert TreeMap eine innere Klasse namens TreeMap.EntrySet , das nur AbstractSet erweitert. Und nein, es implementiert nicht SortedSet (was sonst wahrscheinlich wäre spezifiziert durch den SortedMap.entrySet () Vertrag) .

Aber um die eigentliche Frage zu beantworten: Ja, die Reihenfolge ist gewährleistet, wie in SortedMap.entrySet () Vertrag.

Update: JavaDoc-Links für Java 8 aktualisiert, Quellen sind immer noch Java 6

    
Sean Patrick Floyd 26.08.2010, 07:48
quelle
5

Aus dem JavaDoc :

  

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

     

Gibt eine Set-Ansicht der in dieser Map enthaltenen Mappings zurück. Die Sätze   Iterator gibt die Einträge in aufsteigender Reihenfolge zurück.

    
Thomas Lötzer 26.08.2010 07:00
quelle
0
%Vor%

Aber das Set hat tatsächlich eine Reihenfolge.

    
卢声远 Shengyuan Lu 26.08.2010 07:55
quelle

Tags und Links