Bei einer gegebenen Map mit String-Schlüsseln und -Werten besteht das Ziel darin, die Schlüssel in aufsteigender Reihenfolge zu sortieren. Die sortierten Schlüssel werden dann verwendet, um zwei Zeichenfolgen zu erstellen: eine mit den sortierten Fragen und die andere mit den entsprechenden Antworten.
Um eine Karte nach ihren Schlüsseln zu sortieren, verwenden Sie eine TreeMap , das speziell für diesen Zweck entwickelt wurde. Wenn der Kartentyp unbekannt ist, kann eine alternative Methode mit SortedSet und TreeSet verwendet werden:
SortedSet<String> keys = new TreeSet<>(map.keySet()); for (String key : keys) { String value = map.get(key); // Perform desired operations }
Technisch gesehen kann jede Klasse verwendet werden, die SortedMap implementiert. Allerdings ist TreeMap die am weitesten verbreitete Wahl. Für komplexere Schlüsseltypen oder benutzerdefinierte Sortieranforderungen verwenden Sie den folgenden Konstruktor, um einen Komparator bereitzustellen:
Comparator<Foo> comparator = (Foo o1, Foo o2) -> { // Define custom sort logic }; SortedSet<Foo> keys = new TreeSet<>(comparator); keys.addAll(map.keySet());
Überlegungen zur Leistung:
Beachten Sie, dass TreeMap und TreeSet unterschiedliche haben Leistungsmerkmale im Vergleich zu HashMap und HashSet. Suchvorgänge, die in HashMap O(1) Zeit benötigen, erfordern in TreeMap O(Log(N)) Zeit. Mit zunehmender Kartengröße nimmt die Suchzeit entsprechend zu.
Das obige ist der detaillierte Inhalt vonWie kann ich die Werte einer Java Map nach ihren Schlüsseln sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!