Program Java na triedenie mapy podľa hodnôt

V tomto programe sa naučíte triediť danú mapu podľa hodnôt v Jave.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Rozhranie mapy Java
  • Java LinkedHashMap

Príklad: Zoraďte mapu podľa hodnôt

 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ýkon

 Kľúč: Austrália Hodnota: Canberra Kľúč: Nepál Hodnota: Káthmandu Kľúč: Anglicko Hodnota: Londýn Kľúč: India Hodnota: Nové Dillí Kľúč: USA Hodnota: Washington

Vo vyššie uvedenom programe sme vytvorili LinkedHashMappomenované hlavné mestá. Mapa ukladá krajiny a ich hlavné mestá.

Tu sme vytvorili sortMap()metódu, ktorá vezme mapu a vráti zoradenú mapu.

V rámci tejto metódy sme najskôr vytvorili z hlavných miest mapy zoznam s názvom capitalList. Potom použijeme sort()metódu Collectionsna triedenie prvkov zoznamu.

sort()Metóda má dva parametre: zoznam byť radené a komparátor . V našom prípade je komparátor výrazom lambda.

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

Výraz lambda tu má dva susedné prvky (l1 a l2) zoznamu. Potom použila getValue()metódu na získanie hodnoty a compareTo()metódu na porovnanie dvoch hodnôt.

Po operácii dostaneme zoradený zoznam capitalList. Potom jednoducho prevedieme zoznam na LinkedHashMappomenovaný výsledok a vrátime ho.

Späť v main()metóde prechádzame každou položkou na mape a tlačíme jej kľúč a hodnotu.

Zaujímavé články...