Sortieren Sie die Map-Werte in aufsteigender Schlüsselreihenfolge in Java TreeMap

Überblick

HashMap-Klasse

HashMap sortiert nichts.

HashMap (Java SE 11 & JDK 11 )

Diese Klasse garantiert nicht die Reihenfolge der Karten. Insbesondere übernehmen wir keine Garantie dafür, dass die Reihenfolge immer konstant bleibt.

SortedMap-Schnittstelle

SortedMap realisiert die Sortierung nach Schlüssel. Die von den Methoden entrySet, keySet und values zurückgegebenen Schlüssel und Werte werden nach der Schlüsselreihenfolge sortiert.

SortedMap (Java SE 11 & JDK 11 )

Eine Karte, die eine globale Reihenfolge für diesen Schlüssel bietet. Die Kartenreihenfolge kann gemäß der natürlichen Reihenfolge der Schlüssel oder mit dem Composer erfolgen, der normalerweise beim Erstellen einer Sortierkarte bereitgestellt wird. Diese Reihenfolge wird während der iterativen Verarbeitung der Sortierkartensammlungsansicht (von den Methoden entrySet, keySet, values zurückgegeben) wiedergegeben. Es werden einige zusätzliche Vorgänge bereitgestellt, um diese Bestellung zu nutzen. (Diese Schnittstelle ist eine Karte und ähnelt SortedSet.)

TreeMap-Klasse

TreeMap implementiert die SortedMap-Schnittstelle, sodass die Schlüsselsortierung erfolgt.

TreeMap (Java SE 11 & JDK 11 )

Red-NavigableMap-Implementierung basierend auf Black Tree. Karten werden je nach verwendetem Konstruktor nach der natürlichen Reihenfolge ihrer Schlüssel oder nach dem bei der Kartenerstellung bereitgestellten Komparator sortiert.

Beispielcode

Quellcode zur Überprüfung des Verhaltens von HashMap und TreeMap.

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

public class Sample {

  public static void main(String[] args) {

    //Erstellen Sie HashMap
    //Bestellung ist nicht garantiert
    Map<String, String> hashMap = new HashMap<String, String>();
    hashMap.put("0001", "Alice");
    hashMap.put("0002", "Bob");
    hashMap.put("0003", "Carol");
    hashMap.put("0004", "Dave");
    hashMap.put("0005", "Ellen");
    System.out.println("HashMap");
    for (String key : hashMap.keySet()) {
      System.out.println(key + ": " + hashMap.get(key));
    }
    System.out.println();

    //Erstellen Sie TreeMap
    //Sortiert automatisch in aufsteigender Reihenfolge der Schlüssel
    Map<String, String> treeMap = new TreeMap<String, String>(hashMap);
    System.out.println("TreeMap");
    for (String key : treeMap.keySet()) {
      System.out.println(key + ": " + treeMap.get(key));
    }
    System.out.println();

    //Wenn Sie TreeMap einen Wert hinzufügen, wird dieser automatisch in aufsteigender Reihenfolge der Schlüssel sortiert.
    treeMap.put("0000", "XXXXX");
    System.out.println("TreeMap");
    for (String key : treeMap.keySet()) {
      System.out.println(key + ": " + treeMap.get(key));
    }
    System.out.println();
  }
}

Ausführungsergebnis. HashMap sortiert nichts. TreeMap ist in aufsteigender Reihenfolge der Schlüssel sortiert.

HashMap
0004: Dave
0005: Ellen
0002: Bob
0003: Carol
0001: Alice

TreeMap
0001: Alice
0002: Bob
0003: Carol
0004: Dave
0005: Ellen

TreeMap
0000: XXXXX
0001: Alice
0002: Bob
0003: Carol
0004: Dave
0005: Ellen

Diese Umgebung

$ java --version
openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

Recommended Posts

Sortieren Sie die Map-Werte in aufsteigender Schlüsselreihenfolge in Java TreeMap
Holen Sie sich null-sichere Map-Werte in Java
Sortieren in aufsteigender Reihenfolge in Java (Blasensortierung: Einfacher Austauschmethodenalgorithmus)
Doppelte Karte sortiert nach Schlüssel in Java
Schlüssel vom Wert in Java Map umkehren
[Java] Aufbewahrungsreihenfolge der festgelegten Werte von HashMap, TreeMap, LinkedHashMap
So sortieren Sie mit SQLite in aufsteigender / absteigender Reihenfolge
Holen Sie sich Standortinformationen mit Rails und sortieren Sie in aufsteigender Reihenfolge
[Neta] Sleep Sort in Java
[Java8] Verwenden Sie stream, um Arrays vom Typ int in absteigender Reihenfolge zu sortieren
Sortieren Sie die Liste in absteigender Reihenfolge in Java und generieren Sie zerstörungsfrei eine neue Liste
Daten sortieren Absteigend, aufsteigend / Schienen
Verwenden Sie zusammengesetzte Schlüssel in Java Maps.
Reihenfolge der Mitgliederbeschreibung in der Java-Codierungskonvention
Wichtige Punkte für die Einführung von gRPC in Java
Map ohne Verwendung eines Arrays in Java
Implementierung eines grundlegenden Such- / Sortieralgorithmus in Java
[Java] Achten Sie auf den Schlüsseltyp der Karte
[Java] So erhalten Sie den Schlüssel und den Wert, die in Map gespeichert sind, durch iterative Verarbeitung