„Java“ programa žemėlapiui rūšiuoti pagal vertes

Šioje programoje išmoksite surūšiuoti nurodytą žemėlapį pagal „Java“ reikšmes.

Norėdami suprasti šį pavyzdį, turite žinoti šias Java programavimo temas:

  • „Java“ žemėlapio sąsaja
  • „Java LinkedHashMap“

Pavyzdys: rūšiuokite žemėlapį pagal vertes

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

Rezultatas

 Raktas: Australija Vertė: Kanberos raktas: Nepalas Reikšmė: Katmandu raktas: Anglija Vertė: Londono raktas: Indija Reikšmė: Niu Delis Raktas: Jungtinės Valstijos Vertė: Vašingtonas

Pirmiau pateiktoje programoje mes sukūrėme LinkedHashMapįvardytas sostines. Žemėlapyje saugomos šalys ir jų sostinės.

Čia mes sukūrėme sortMap()metodą, kuris ima žemėlapį ir grąžina surūšiuotą žemėlapį.

Metodo viduje mes pirmiausia sukūrėme sąrašą, pavadintą capitalList iš žemėlapio didžiųjų raidžių. Tada mes naudojame sąrašo elementų rūšiavimo sort()metodą Collections.

sort()Metodas trunka du parametrus: Sąrašas dar turi būti rūšiuojami ir komparatoriaus . Mūsų atveju lyginamasis yra lambda išraiška.

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

Čia lambda išraiška užima du gretimus sąrašo elementus (l1 ir l2). Tada jis naudojo getValue()metodą vertei gauti ir compareTo()metodą dviem reikšmėms palyginti.

Po operacijos gauname surūšiuotą sąrašą capitalList. Tada mes paprasčiausiai konvertuojame sąrašą į LinkedHashMappavadintą rezultatą ir jį grąžiname.

Atgal į main()metodą, mes peržiūrime kiekvieną žemėlapio elementą ir atspausdiname jo raktą ir vertę.

Įdomios straipsniai...