Program Java pentru sortarea unei hărți după valori

Î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 LinkedHashMapcapitală 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 Collectionspentru 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 LinkedHashMaprezultat numit și o returnăm.

Înapoi la main()metodă, parcurgem fiecare element din hartă și îi imprimăm cheia și valoarea.

Articole interesante...