


Comment puis-je trier un TreeMap Java par ses valeurs plutôt que par ses clés ?
Tri TreeMap par valeur
Lorsque vous travaillez avec TreeMap de Java, le tri selon l'ordre naturel par défaut des clés peut ne pas toujours être suffisant. Cet article explore une approche alternative pour trier un TreeMap en fonction de ses valeurs.
Description du problème :
Vous cherchez un moyen de concevoir un comparateur qui vous permet de trier un TreeMap par ses valeurs au lieu de l'ordre des clés par défaut. Une première tentative a renvoyé une erreur, soulevant des questions sur la transmission de Map.Entry au comparateur.
Solution :
Bien qu'il ne soit pas possible de trier un TreeMap directement par valeurs, il est possible d'utiliser une collection externe pour effectuer cette tâche. En extrayant Map.entrySet(), vous pouvez utiliser un comparateur personnalisé pour trier les entrées en fonction de leurs valeurs.
La méthode générique fournie, inputsSortedByValues(), y parvient en créant un SortedSet d'objets Map.Entry . La méthode nécessite que les valeurs de la carte soient comparables et applique un comparateur qui compare les valeurs pour déterminer l'entrée commande.
Mise en œuvre :
static <k v extends comparable super>> SortedSet<map.entry v>> entriesSortedByValues(Map<k v> map) { SortedSet<map.entry v>> sortedEntries = new TreeSet( new Comparator<map.entry v>>() { @Override public int compare(Map.Entry<k v> e1, Map.Entry<k v> e2) { int res = e1.getValue().compareTo(e2.getValue()); return res != 0 ? res : 1; // Handle equal values separately } } ); sortedEntries.addAll(map.entrySet()); return sortedEntries; }</k></k></map.entry></map.entry></k></map.entry></k>
Utilisation :
Map<string integer> map = new TreeMap(); map.put("A", 3); map.put("B", 2); map.put("C", 1); System.out.println(map); // prints "{A=3, B=2, C=1}" System.out.println(entriesSortedByValues(map)); // prints "[C=1, B=2, A=3]"</string>
Attention :
La modification de l'ensemble trié ou de la Map.Entry à l'intérieur peut entraîner des résultats inattendus, car ce n'est pas une "vue" de la carte originale. De plus, veillez à utiliser == avec des objets Integer, car il effectue une égalité de référence et non une égalité de valeur.
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!

Jvm'sperformance estcompatititivewithotherruntimes, offrant une élaboration de personnes, la sécurité et la productivité.1) jvmusjitcompilationfordynamicoptimizations.2) c offrant une performance de Nation

JavaachievesPlatformIndependencethroughthejavirtualmachine (jvm), permettant de codétorunonanyplatformwithajvm.1) codeiscompiledIntoBytecode, notmachine-specificcode.2) bytecodeisinterpretedythejvm

ThejvMisanabstractComputingMachinecrucialForrunningJavapRogramsDuetOtsPlatform-IndependentArchitecture.

Jvmhasacloselalationhipswiththeosasittranslatejavabytecodeintomachine-spécificifiCinstructions, gasmemory et handlesgarbagecollection.

L'implémentation Java "Écrire une fois, exécuter partout" est compilée en bytecode et s'exécute sur une machine virtuelle Java (JVM). 1) Écrivez du code Java et compilez-le en bytecode. 2) ByteCode s'exécute sur n'importe quelle plate-forme avec JVM installé. 3) Utilisez l'interface native Java (JNI) pour gérer les fonctions spécifiques à la plate-forme. Malgré des défis tels que la cohérence JVM et l'utilisation de bibliothèques spécifiques à la plate-forme, WORA améliore considérablement l'efficacité du développement et la flexibilité du déploiement.

JavaachievesPlatformIndependencethRoughthejavirtualmachine (JVM), permettant à la codétorunondiffférente de système

JavaispoWerfuetOitsPlatformIndependence, objet-orientednature, richstandardLibrary, performanceCapabilities et StrongSecurityFeatures.1) Platform IndependenenceSAplicationStorunonanyDevicesupportingJava.2)

Les fonctions Java supérieures incluent: 1) la programmation orientée objet, la prise en charge du polymorphisme, l'amélioration de la flexibilité du code et la maintenabilité; 2) Mécanisme de gestion des exceptions, améliorant la robustesse du code à travers des blocs de capture-effort finalement; 3) Collection des ordures, simplification de la gestion de la mémoire; 4) génériques, améliorant la sécurité de type; 5) Expressions Ambda et programmation fonctionnelle pour rendre le code plus concis et expressif; 6) Bibliothèques standard riches, fournissant des structures de données optimisées et des algorithmes.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel
