Heim > Java > javaLernprogramm > Wie sortiere ich die Werte einer Karte nach Schlüssel in Java?

Wie sortiere ich die Werte einer Karte nach Schlüssel in Java?

Barbara Streisand
Freigeben: 2024-12-31 03:30:13
Original
312 Leute haben es durchsucht

How to Sort a Map's Values by Key in Java?

Sortieren von Kartenwerten nach Schlüssel in Java

Um Werte in einer Karte nach Schlüssel zu sortieren, sollten Sie entweder eine TreeMap oder ein benutzerdefiniertes SortedSet mit verwenden ein Komparator.

Verwenden TreeMap

  • TreeMap ist eine spezialisierte Map-Implementierung, die ihre Schlüssel in sortierter Reihenfolge verwaltet.
  • Um eine TreeMap mit Zeichenfolgen als Schlüssel zu erstellen, instanziieren Sie einfach eine neue TreeMap.

Verwendet SortedSet

  • Wenn die Map zunächst keine TreeMap ist, können Sie mit einem TreeSet ein SortedSet der Schlüssel erstellen.
  • Dadurch können Sie die Schlüssel sortiert durchlaufen Bestellung.

Codebeispiel:

import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;

public class MapSortByKey {

    // Using TreeMap
    public static void sortByTreeMap() {
        Map<String, String> map = new TreeMap<>();
        map.put("question1", "1");
        map.put("question9", "1");
        map.put("question2", "4");
        map.put("question5", "2");

        // Iterate through the sorted map
        StringBuilder questionString = new StringBuilder();
        StringBuilder answerString = new StringBuilder();
        for (Map.Entry<String, String> entry : map.entrySet()) {
            questionString.append(entry.getKey() + ",");
            answerString.append(entry.getValue() + ",");
        }

        // Remove the trailing commas
        questionString.setLength(questionString.length() - 1);
        answerString.setLength(answerString.length() - 1);

        System.out.println("Questions: " + questionString);
        System.out.println("Answers: " + answerString);
    }

    // Using SortedSet
    public static void sortBySortedSet() {
        Map<String, String> map = new HashMap<>();
        map.put("question1", "1");
        map.put("question9", "1");
        map.put("question2", "4");
        map.put("question5", "2");

        // Create a sorted set of the keys
        SortedSet<String> keys = new TreeSet<>(map.keySet());

        // Iterate through the sorted keys
        StringBuilder questionString = new StringBuilder();
        StringBuilder answerString = new StringBuilder();
        for (String key : keys) {
            String value = map.get(key);
            questionString.append(key + ",");
            answerString.append(value + ",");
        }

        // Remove the trailing commas
        questionString.setLength(questionString.length() - 1);
        answerString.setLength(answerString.length() - 1);

        System.out.println("Questions: " + questionString);
        System.out.println("Answers: " + answerString);
    }

    public static void main(String[] args) {
        sortByTreeMap();
        sortBySortedSet();
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie sortiere ich die Werte einer Karte nach Schlüssel in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage