Ich habe TreeMap
verwendet, wobei der Schlüssel ein String
ist und der Wert vom Typ Integer
ist. Wenn ich das Objekt Map
ausgabe, wird nicht in sortierter Reihenfolge gedruckt.
Hier ist der Code, den ich benutzt habe:
%Vor%Ich erwarte, dass die Ausgabe wie folgt sortiert wird:
map: {Hallo = 1, Welt = 2, Zertt = 5}
Aber stattdessen bekomme ich das:
map: {Hallo = 1, Zertt = 5, Welt = 2}
Javadoc sagt:
Die Map wird nach der natürlichen Reihenfolge ihrer Schlüssel sortiert, oder nach einem Komparator, der bei der Erstellung der Map zur Verfügung steht, abhängig davon, welcher Konstruktor verwendet wird.
EDIT: Erans Antwort ist richtig, String-Reihenfolge ist standardmäßig Groß-und Kleinschreibung.
Vielleicht wird diese Information hilfreich sein.
In der Klasse TreeMap enthält Konstruktoren:
TreeMap ()
TreeMap (Comparator comp)
TreeMap (Karte m)
TreeMap (SortedMap sm)
Der erste Konstruktor erstellt eine Sammlung, in der alle Elemente enthalten sind sind in natürlicher Reihenfolge ihrer Schlüssel sortiert.
Der zweite Konstruktor erstellt eine leere Sammlung, deren Elemente die nach dem Gesetz sortiert werden, das in der Übertragungskomparator.
Der dritte Konstruktor erstellt eine TreeMap basierend auf einer vorhandenen Map.
Der vierte Konstruktor erstellt eine TreeMap basierend auf der vorhandenen SortedMap, Elemente davon werden nach dem übertragenen Gesetz sortiert Sortierte Karte.
Beachten Sie, dass für die Sortierung die Schlüssel und nicht der Wert verwendet werden.
Wie zuvor beantwortet, wird bei der natürlichen Reihenfolge der Zeichenfolge zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie jedoch eine unwesentliche Reihenfolge wünschen, können Sie den Vergleicher als TreeMap-Konstruktorparameter angeben:
%Vor%ps. Beachten Sie, dass bei der Verwendung von Groß- und Kleinschreibung in der Groß- / Kleinschreibung die Schlüssel auch unwesentlich sind:
%Vor% Ergebnis ist 6 und Schlüssel ist Hello
Die Sortierung in Treemap basiert auf der natürlichen Reihenfolge der Schlüssel und nicht der Werte.