Maison >Java >javaDidacticiel >Comment puis-je trier une HashMap Java par ses valeurs ?

Comment puis-je trier une HashMap Java par ses valeurs ?

DDD
DDDoriginal
2024-12-07 13:36:18317parcourir

How Can I Sort a Java HashMap by Its Values?

Tri d'une HashMap en Java : techniques basées sur la valeur

En Java, les HashMaps sont des collections précieuses pour stocker des paires clé-valeur, mais elles ne maintiennent pas d’ordre de tri spécifique. Pour trier une HashMap en fonction de valeurs, nous devons utiliser des techniques supplémentaires.

Approches pour le tri basé sur les valeurs

Une approche consiste à convertir la HashMap en une liste de valeurs à l’aide de la méthode values(). On peut ensuite trier la liste à l'aide d'un comparateur qui définit la logique de tri souhaitée.

Map<String, Person> people = new HashMap<>();
Person jim = new Person("Jim", 25);
Person scott = new Person("Scott", 28);
Person anna = new Person("Anna", 23);

people.put(jim.getName(), jim);
people.put(scott.getName(), scott);
people.put(anna.getName(), anna);

List<Person> peopleByAge = new ArrayList<>(people.values());
Collections.sort(peopleByAge, Comparator.comparing(Person::getAge));

Après avoir trié la liste, on peut accéder aux éléments triés.

Autre approche, adaptée aux accès fréquents , consiste à créer un mappage HashMap vers un ensemble trié. Par exemple, nous pourrions utiliser un HashMap> pour y parvenir.

Considération pour TreeMap

Si le tri par clé est préféré, il vaut la peine d'envisager d'utiliser un TreeMap à la place. TreeMaps maintient automatiquement un ordre de tri naturel basé sur les clés.

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