Dans ce programme, vous apprendrez à trier une carte donnée par valeurs en Java.
Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:
- Interface de carte Java
- Java LinkedHashMap
Exemple: trier une carte par valeurs
import java.util.*; public class Main ( public static void main(String() args) ( // create a map and store elements to it LinkedHashMap capitals = new LinkedHashMap(); capitals.put("Nepal", "Kathmandu"); capitals.put("India", "New Delhi"); capitals.put("United States", "Washington"); capitals.put("England", "London"); capitals.put("Australia", "Canberra"); // call the sortMap() method to sort the map Map result = sortMap(capitals); for (Map.Entry entry : result.entrySet()) ( System.out.print("Key: " + entry.getKey()); System.out.println(" Value: " + entry.getValue()); ) ) public static LinkedHashMap sortMap(LinkedHashMap map) ( List capitalList = new LinkedList(map.entrySet()); // call the sort() method of Collections Collections.sort(capitalList, (l1, l2) -> l1.getValue().compareTo(l2.getValue())); // create a new map LinkedHashMap result = new LinkedHashMap(); // get entry from list to the map for (Map.Entry entry : capitalList) ( result.put(entry.getKey(), entry.getValue()); ) return result; ) )
Production
Clé: Australie Valeur: Canberra Clé: Népal Valeur: Kathmandu Clé: Angleterre Valeur: Londres Clé: Inde Valeur: New Delhi Clé: États-Unis Valeur: Washington
Dans le programme ci-dessus, nous avons créé des LinkedHashMap
capitales nommées. La carte stocke les pays et leurs capitales respectives.
Ici, nous avons créé une sortMap()
méthode qui prend la carte et renvoie la carte triée.
Dans la méthode, nous avons d'abord créé une liste nommée capitalList à partir des capitales de la carte. Nous utilisons ensuite la sort()
méthode de Collections
pour trier les éléments de la liste.
La sort()
méthode prend deux paramètres: une liste à trier et un comparateur . Dans notre cas, le comparateur est une expression lambda.
(l1, l2) -> l1.getValue().compareTo(l2.getValue())
Ici, l'expression lambda prend deux éléments adjacents (l1 et l2) de la liste. Il a ensuite utilisé la getValue()
méthode pour obtenir la valeur et la compareTo()
méthode pour comparer deux valeurs.
Après l'opération, nous obtenons la liste triée capitalList. Ensuite, nous convertissons simplement la liste en LinkedHashMap
résultat nommé et le retournons.
De retour dans la main()
méthode, nous parcourons chaque élément de la carte et imprimons sa clé et sa valeur.