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 LinkedHashMap
navngitte 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 LinkedHashMap
navngitt resultat og returnerer den.
Tilbake i main()
metoden går vi gjennom hvert element på kartet og skriver ut nøkkel og verdi.