Šajā programmā jūs iemācīsities kārtot noteiktu karti pēc vērtībām Java.
Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:
- Java kartes saskarne
- Java LinkedHashMap
Piemērs: kārtojiet karti pēc vērtībām
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; ) )
Rezultāts
Atslēga: Austrālija Vērtība: Kanberas atslēga: Nepāla Vērtība: Katmandu atslēga: Anglija Vērtība: Londonas atslēga: Indija Vērtība: Ņūdeli Atslēga: Amerikas Savienotās Valstis Vērtība: Vašingtona
Iepriekš minētajā programmā mēs esam izveidojuši LinkedHashMap
nosauktu galvaspilsētas. Kartē ir saglabātas valstis un to galvaspilsētas.
Šeit mēs esam izveidojuši sortMap()
metodi, kas ņem karti un atgriež sakārtoto karti.
Metodes iekšpusē mēs vispirms izveidojām sarakstu ar nosaukumu CapitalList no kartes lielajiem burtiem. Pēc tam mēs izmantojam sort()
metodi Collections
saraksta elementu kārtošanai.
sort()
Metode ņem divi parametri: saraksts, kas sakārtoti un salīdzinājuma . Mūsu gadījumā salīdzinātājs ir lambda izteiksme.
(l1, l2) -> l1.getValue().compareTo(l2.getValue())
Šeit lambda izteiksme aizņem divus blakus esošos saraksta elementus (l1 un l2). Pēc tam tā izmantoja getValue()
metodi, lai iegūtu vērtību, un compareTo()
metodi, lai salīdzinātu divas vērtības.
Pēc operācijas mēs iegūstam sakārtoto sarakstu capitalList. Pēc tam mēs vienkārši konvertējam sarakstu uz LinkedHashMap
nosaukto rezultātu un atgriežam to.
Atpakaļ pa main()
metodi, mēs aplūkojam katru kartes elementu un izdrukājam tā atslēgu un vērtību.