Java-program for å sortere et kart etter verdier

I dette programmet lærer du å sortere et gitt kart etter verdier i Java.

For å forstå dette eksemplet, bør du ha kunnskap om følgende Java-programmeringsemner:

  • Java Kartgrensesnitt
  • Java LinkedHashMap

Eksempel: Sorter et kart etter verdier

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

Produksjon

 Nøkkel: Australia Verdi: Canberra Nøkkel: Nepal Verdi: Kathmandu Nøkkel: England Verdi: London Nøkkel: India Verdi: New Delhi Nøkkel: USA Verdi: Washington

I programmet ovenfor har vi opprettet LinkedHashMapnavngitte hovedsteder. Kartet lagrer land og deres respektive hovedsteder.

Her har vi laget en sortMap()metode som tar kartet og returnerer det sorterte kartet.

Inne i metoden opprettet vi først en liste med navnet capitalList fra karthovedstedene. Vi bruker deretter sort()metoden for Collectionså sortere elementer i listen.

Den sort()metode tar to parametere: liste som skal sorteres , og en komparator . I vårt tilfelle er komparatoren et lambdauttrykk.

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

Her tar lambdauttrykket to tilstøtende elementer (l1 og l2) i listen. Den brukte deretter getValue()metoden for å få verdien og compareTo()metoden for å sammenligne to verdier.

Etter operasjonen får vi den sorterte listen capitalList. Deretter konverterer vi bare listen til LinkedHashMapnavngitt resultat og returnerer den.

Tilbake i main()metoden går vi gjennom hvert element på kartet og skriver ut nøkkel og verdi.

Interessante artikler...