Maison > Java > javaDidacticiel > Comment trier un HashMap Java par valeurs par ordre croissant et décroissant ?

Comment trier un HashMap Java par valeurs par ordre croissant et décroissant ?

Susan Sarandon
Libérer: 2024-11-26 17:38:15
original
649 Les gens l'ont consulté

How to Sort a Java HashMap by Values in Ascending and Descending Order?

Tri d'un HashMap par valeurs

En Java, la structure de données HashMap fournit un moyen pratique de stocker des paires clé-valeur. Cependant, si vous devez accéder aux données en fonction des valeurs associées aux clés, trier le HashMap par valeurs est nécessaire.

Tri d'un HashMap par ordre croissant

Une approche pour trier un HashMap par valeurs consiste à utiliser un flux Java 8. L'extrait de code suivant montre comment procéder par ordre croissant :

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class SortHashMapByValues {

    public static void main(String[] args) {
        // Create an unsorted HashMap
        HashMap<Integer, String> unsortedMap = new HashMap<>();
        unsortedMap.put(1, "froyo");
        unsortedMap.put(2, "abby");
        unsortedMap.put(3, "denver");
        unsortedMap.put(4, "frost");
        unsortedMap.put(5, "daisy");

        // Sort the HashMap by values in ascending order
        Map<Integer, String> sortedMapAsc = unsortedMap.entrySet()
                .stream()
                .sorted(Map.Entry.comparingByValue())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
                        (oldValue, newValue) -> oldValue, LinkedHashMap::new));

        // Key, Value : 2, abby
        // Key, Value : 5, daisy
        // Key, Value : 3, denver
        // Key, Value : 4, frost
        // Key, Value : 1, froyo
        System.out.println(sortedMapAsc);
    }
}
Copier après la connexion

Tri d'une HashMap par ordre décroissant

Pour trier une HashMap par valeurs par ordre décroissant, modifiez légèrement l'extrait de code ci-dessus :

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class SortHashMapByValues {

    public static void main(String[] args) {
        // Create an unsorted HashMap
        HashMap<Integer, String> unsortedMap = new HashMap<>();
        unsortedMap.put(1, "froyo");
        unsortedMap.put(2, "abby");
        unsortedMap.put(3, "denver");
        unsortedMap.put(4, "frost");
        unsortedMap.put(5, "daisy");

        // Sort the HashMap by values in descending order
        Map<Integer, String> sortedMapDesc = unsortedMap.entrySet()
                .stream()
                .sorted(Map.Entry.<Integer, String>comparingByValue().reversed())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
                        (oldValue, newValue) -> oldValue, LinkedHashMap::new));

        // Key, Value : 1, froyo
        // Key, Value : 4, frost
        // Key, Value : 3, denver
        // Key, Value : 5, daisy
        // Key, Value : 2, abby
        System.out.println(sortedMapDesc);
    }
}
Copier après la connexion

Ce code affichera le trié HashMap avec des clés représentant les clés et valeurs d'origine triées par ordre décroissant. Les exemples d'ordre croissant et décroissant utilisent un LinkedHashMap pour maintenir l'ordre d'insertion, garantissant que les clés sont correctement associées aux valeurs triées.

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