Š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šą į LinkedHashMap
pavadintą rezultatą ir jį grąžiname.
Atgal į main()
metodą, mes peržiūrime kiekvieną žemėlapio elementą ir atspausdiname jo raktą ir vertę.