Programme Java pour trier une carte par valeurs

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 LinkedHashMapcapitales 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 Collectionspour 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 LinkedHashMapré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.

Articles intéressants...