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.








