En Java, "Plans«Sont une puissante structure de données utilisée pour stocker des données. Une carte peut facilement déterminer la valeur appropriée pour une clé donnée car la carte stocke les données dans les paires de valeurs de clé, où chaque clé a une valeur unique correspondante. Pour récupérer ces valeurs à partir d'une carte, une clé unique est requise; Cependant, les valeurs peuvent être les mêmes pour deux clés uniques.
Cet article expliquera la méthode de trier une carte par valeur en java.
Comment trier une carte par valeur en java?
En Java, une carte peut être triée par valeur:
Nous allons maintenant vérifier chacune des méthodes mentionnées une par une!
Méthode 1: Triez une carte par valeur en java en utilisant la méthode SORT ()
Le "trier()«La méthode est une méthode statique de la classe de collecte Java. Cette méthode ne peut être appliquée qu'aux listes telles que LinkedList, ArrayList, etc.
Cette section démontrera la méthode pour trier les valeurs des éléments de carte dans l'ordre croissant et descendant.
Exemple 1: Triez une carte par valeur dans l'ordre croissant
Dans cet exemple, nous allons trier les valeurs de la carte dans l'ordre croissant en utilisant le «ComparaisonByValue ()" et le "trier()". Nous allons d'abord créer une carte de type entier appelé «carte" comme suit:
Cartemap = new hashmap ();
Ensuite, nous mettons les valeurs sur la carte créée sous la forme de paires de valeurs clés:
carte.put (7, 10);
carte.put (1, 1000);
carte.put (5, 380);
carte.put (3, 700);
Imprimez la carte comme une paire de valeurs clés en utilisant le «pour chaque" boucle. La boucle Foreach n'est utilisée que pour faire une boucle à travers chaque élément de la carte à plusieurs reprises. Nous avons ajouté un "Expression de lambda”(->) avec la boucle pour éviter plusieurs lignes dans le code source:
carte.foreach ((k, v) -> système.dehors.println (k + ":" + v));
Ensuite, nous imprimerons l'énoncé suivant en utilisant le «Système.dehors.println ()" méthode:
Système.dehors.println ("Les valeurs après tri:");
Pour trier les entrées avec le «trier()«Méthode, nous devons d'abord créer une liste avec l'ensemble des entrées renvoyées par le«entryset ()" méthode:
Liste> nlist = new ArrayList (carte.entrySet ());
Maintenant, nous appellerons la méthode tri () en passant le «ComparaisonByValue ()«Méthode comme argument pour permettre la comparaison des valeurs de l'entrée:
nistre.trier (entrée.comparerbyValue ());
Enfin, nous allons imprimer les valeurs triées de la carte à l'aide de la boucle foreach:
nistre.foreach (système.out :: println);
Note: Lors de l'exécution de l'exemple ci-dessus, vous devez importer les bibliothèques liées à MAP, list, arrayList, mapentry, hashmap en haut du code source.
La sortie montre que la carte est triée par valeur dans l'ordre croissant:
Exemple 2: Triez une carte par valeur dans l'ordre descendant
Dans cet exemple, nous trierons les valeurs d'une carte en utilisant le «trier()«Méthode et«ComparaisonByValue ()»Méthode pour trier les éléments de la carte dans l'ordre descendant. Ici, nous allons d'abord créer une carte de type entier pour stocker les valeurs int:
Cartemap = new hashmap ();
Ensuite, nous ajouterons les données sur une carte sous la forme de paires de valeurs clés:
carte.put (7, 10);
carte.put (1, 100);
carte.put (5, 3800);
carte.put (3, 70);
Nous allons créer une liste pour trier les éléments de la carte:
Liste> nlist = new ArrayList (carte.entrySet ());
Ici, nous appellerons le «ComparaisonByValue ()«Méthode en passant un«ordre inverse()«Méthode du«Comparateur"Classe comme argument. Il renverra les valeurs de carte dans l'ordre inverse:
nistre.trier (entrée.ComparaisondByValue (Comparator.ordre inverse());
Imprimez les valeurs triées en utilisant "pour chaque" boucle:
nistre.foreach (système.out :: println);
Comme vous pouvez le voir, les valeurs de la carte sont triées dans l'ordre descendant:
Voyons une autre méthode pour trier les éléments de la carte par valeur.
Méthode 2: Triez une carte par valeur en java en utilisant la méthode triée ()
La deuxième approche consiste à trier la carte par des valeurs en utilisant l'API Stream. L'API Stream contient un certain nombre de méthodes qui peuvent être utilisées pour traiter une collection d'objets, telle que Stream () et tri ().
Dans cette section, nous imprimerons également la carte par des valeurs à la fois dans l'ordre croissant et descendant.
Exemple 1: Triez une carte par valeur dans l'ordre croissant
Cet exemple utilisera la même valeur de carte et les triera dans l'ordre croissant en utilisant le «tri ()»Méthode de Stream API. Nous utiliserons le «flux()”Méthode pour transformer l'entrée de la carte en flux, puis trier la carte à l'aide du«tri ()" méthode.
Le "ComparaisonByValue ()«La méthode de la carte fournit le«tri ()«Méthode avec des informations supplémentaires sur l'ordre de tri naturel. Enfin, le «pour chaque”La boucle peut être utilisée pour accéder à tous les éléments et obtenir les paires de valeurs clés une par une:
Flux> trié = map.entryset ().flux()
.trié (carte.Entrée.comparerbyValue ());
La sortie montre que la carte est triée par valeur dans l'ordre croissant en utilisant la méthode triée ():
Exemple 2: Triez une carte par valeur dans l'ordre descendant
Pour trier la carte par valeur dans l'ordre descendant, nous utiliserons le «ComparaisonByValue ()"Méthode en passant"ordre inverse()«Méthode comme argument au«tri ()" méthode:
Flux> trié = map.entryset ().flux() .trié (carte.Entrée.ComparaisondByValue (Comparator.ordre inverse()));
Comme vous pouvez le voir, le «tri ()»Méthode a organisé la valeur de la carte dans l'ordre descendant:
Nous avons fourni toutes les informations essentielles liées au tri d'une carte par valeur.
Conclusion
Pour trier une carte par valeur en Java, utilisez le «trier()"Méthode et le"tri ()”Méthode avec la méthode CompareByValue (). Ces méthodes trient les valeurs dans l'ordre croissant, tandis que pour l'ordre descendant, vous devez appeler la méthode inverse de la classe de comparaison comme argument des méthodes spécifiées. Cet article a couvert diverses méthodes Java pour trier une carte par valeur.