Java programma, lai kārtotu karti pēc vērtībām

Š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 LinkedHashMapnosauktu 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 Collectionssaraksta 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 LinkedHashMapnosaukto 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.

Interesanti raksti...