Maison > Java > javaDidacticiel > Comment trier les valeurs d'une carte par clé en Java ?

Comment trier les valeurs d'une carte par clé en Java ?

Barbara Streisand
Libérer: 2024-12-31 03:30:13
original
312 Les gens l'ont consulté

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

Tri des valeurs de carte par clé en Java

Pour trier les valeurs d'une carte par clé, envisagez d'utiliser un TreeMap ou un SortedSet personnalisé avec un comparateur.

Utilisation TreeMap

  • TreeMap est une implémentation de carte spécialisée qui conserve ses clés dans un ordre trié.
  • Pour créer un TreeMap avec des chaînes comme clés, instanciez simplement un nouveau TreeMap.

Utilisation SortedSet

  • Si la carte n'est pas initialement un TreeMap, vous pouvez créer un SortedSet des clés à l'aide d'un TreeSet.
  • Cela vous permet de parcourir les clés triées commande.

Exemple de code :

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();
    }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal