Java programm kaardi sortimiseks väärtuste järgi

Lang L: none (table-of-contents)

Selles programmis õpite antud kaarti sortima Java väärtuste järgi.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:

  • Java kaardi liides
  • Java LinkedHashMap

Näide: sortige kaart väärtuste järgi

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

Väljund

 Võti: Austraalia väärtus: Canberra võti: Nepal väärtus: Katmandu võti: Inglismaa väärtus: Londoni võti: India väärtus: New Delhi võti: Ameerika Ühendriigid väärtus: Washington

Ülaltoodud programmis oleme loonud LinkedHashMapnimega pealinnad. Kaardile on salvestatud riigid ja nende pealinnad.

Siin oleme loonud sortMap()meetodi, mis võtab kaardi ja tagastab sorditud kaardi.

Meetodi sees lõime kõigepealt kaardi pealinnadest loendi kapitalList. Seejärel kasutame loendi elementide sortimiseks sort()meetodit Collections.

sort()Meetod võtab kaks parameetrit: nimekirja sorteeritakse ja võrdlusmenet- . Meie puhul on võrdluseks lambda väljend.

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

Siin võtab lambda avaldis loendi kaks kõrvuti asetsevat elementi (l1 ja l2). Seejärel kasutas see getValue()meetodi väärtuse saamiseks ja compareTo()meetodit kahe väärtuse võrdlemiseks.

Pärast operatsiooni saame sorditud loendi capitalList. Seejärel teisendame loendi lihtsalt LinkedHashMapnimetatud tulemuseks ja tagastame selle.

main()Meetodi juurde tagasi vaadates otsime kaardil iga üksuse läbi ja printime selle võtme ja väärtuse.

Huvitavad Artiklid...