În acest program, veți învăța să sortați o hartă dată după valori în Java.
Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:
- Interfață Java Map
- Java LinkedHashMap
Exemplu: Sortează o hartă după valori
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; ) )
Ieșire
Cheie: Australia Valoare: Canberra Cheie: Nepal Valoare: Kathmandu Cheie: Anglia Valoare: Londra Cheie: India Valoare: New Delhi Cheie: Statele Unite Valoare: Washington
În programul de mai sus, am creat o LinkedHashMap
capitală numită. Harta stochează țările și capitalele respective.
Aici, am creat o sortMap()
metodă care ia harta și returnează harta sortată.
În cadrul metodei, am creat mai întâi o listă numită capitalList din capitalele hărții. Apoi folosim sort()
metoda Collections
pentru a sorta elementele listei.
sort()
Metoda are doi parametri: lista să fie sortate și un comparator . În cazul nostru, comparatorul este o expresie lambda.
(l1, l2) -> l1.getValue().compareTo(l2.getValue())
Aici, expresia lambda ia două elemente adiacente (l1 și l2) din listă. Apoi a folosit getValue()
metoda pentru a obține valoarea și compareTo()
metoda pentru a compara două valori.
După operație, obținem lista sortată capitalList. Apoi, pur și simplu convertim lista în LinkedHashMap
rezultat numit și o returnăm.
Înapoi la main()
metodă, parcurgem fiecare element din hartă și îi imprimăm cheia și valoarea.