Maison >Java >javaDidacticiel >Comment trier un HashMap avec des valeurs ArrayList en Java ?

Comment trier un HashMap avec des valeurs ArrayList en Java ?

DDD
DDDoriginal
2024-11-28 00:26:11159parcourir

How to Sort a HashMap with ArrayList Values in Java?

Comment trier un HashMap en Java

Le HashMap fourni est un mappage entre les clés et les ArrayLists. Pour trier cette structure, nous avons deux options : utiliser un TreeMap ou écrire du code personnalisé pour trier par valeurs ArrayList.

Option 1 : Utiliser un TreeMap

Si besoin car une interface Map n’est pas indispensable, pensez plutôt à utiliser un TreeMap. Un TreeMap maintient un ordre naturel parmi ses clés, fournissant un accès trié aux paires clé-valeur.

Option 2 : Tri personnalisé par valeurs d'ArrayList

Pour trier le HashMap en fonction de Valeurs ArrayList, vous pouvez utiliser le code suivant :

// HashMap to be sorted
Map<String, ArrayList<Integer>> unsortedMap = new HashMap<>();

// Create a list to store the sorted values
List<Integer> sortedValues = new ArrayList<>();

// Iterate over the HashMap values and extract the ArrayLists
for (Map.Entry<String, ArrayList<Integer>> entry : unsortedMap.entrySet()) {
    sortedValues.addAll(entry.getValue());
}

// Sort the values in ascending order
Collections.sort(sortedValues);

// Create a new HashMap with the sorted values
Map<String, ArrayList<Integer>> sortedMap = new HashMap<>();
for (Map.Entry<String, ArrayList<Integer>> entry : unsortedMap.entrySet()) {
    sortedMap.put(entry.getKey(), new ArrayList<>( // Sorted list
        sortedValues.subList(0, entry.getValue().size())));
    sortedValues.subList(0, entry.getValue().size()).clear();
}

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!

Déclaration:
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