Java-programma om een ​​kaart op waarden te sorteren

In dit programma leer je een bepaalde kaart te sorteren op waarden in Java.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java-kaartinterface
  • Java LinkedHashMap

Voorbeeld: sorteer een kaart op waarden

 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; ) ) 

Uitvoer

 Sleutel: Australië Waarde: Canberra Sleutel: Nepal Waarde: Kathmandu Sleutel: Engeland Waarde: London Sleutel: India Waarde: New Delhi Sleutel: Verenigde Staten Waarde: Washington

In het bovenstaande programma hebben we een LinkedHashMapnaam gemaakt met hoofdletters. De kaart slaat landen en hun respectievelijke hoofdsteden op.

Hier hebben we een sortMap()methode gemaakt die de kaart pakt en de gesorteerde kaart retourneert.

Binnen de methode hebben we eerst een lijst met de naam capitalList gemaakt op basis van de hoofdsteden van de kaart. Vervolgens gebruiken we de sort()methode van Collectionsom elementen van de lijst te sorteren.

De sort()methode heeft twee parameters: lijst die moet worden gesorteerd en een vergelijker . In ons geval is de comparator een lambda-uitdrukking.

 (l1, l2) -> l1.getValue().compareTo(l2.getValue())

Hier neemt de lambda-uitdrukking twee aangrenzende elementen (l1 en l2) van de lijst. Vervolgens heeft het de getValue()methode gebruikt om de waarde te krijgen en de compareTo()methode om twee waarden te vergelijken.

Na de operatie krijgen we de gesorteerde lijst capitalList. Vervolgens converteren we de lijst eenvoudig naar het LinkedHashMapgenoemde resultaat en retourneren we het.

Terug in de main()methode doorlopen we elk item op de kaart en drukken de sleutel en waarde af.

Interessante artikelen...