Јава програм за сортирање мапе према вредностима

У овом програму научићете сортирање дате мапе према вредностима у Јави.

Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања Јава:

  • Јава Мап Интерфаце
  • Јава ЛинкедХасхМап

Пример: Сортирање карте према вредностима

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

Оутпут

 Кључ: Аустралија Вредност: Цанберра Кључ: Непал Вредност: Катманду Кључ: Енглеска Вредност: Лондон Кључ: Индија Вредност: Нев Делхи Кључ: Сједињене Државе Вредност: Вашингтон

У горе наведеном програму створили смо LinkedHashMapименоване главне градове. На мапи се чувају државе и њихови главни градови.

Овде смо креирали sortMap()метод који узима мапу и враћа сортирану мапу.

Унутар методе прво смо креирали листу која се зове цапиталЛист из главних градова. Затим користимо sort()методу Collectionsза сортирање елемената листе.

sort()Метод узима два параметра: лист да се сортирају и компаратора . У нашем случају, упоређивач је ламбда израз.

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

Овде, ламбда израз узима два суседна елемента (л1 и л2) листе. Затим је користила getValue()методу за добијање вредности и compareTo()методу за упоређивање две вредности.

После операције добијамо сортирану листу цапиталЛист. Затим једноставно претворимо листу у LinkedHashMapименовани резултат и вратимо је.

Поново у main()методи, петљу вршимо кроз сваку ставку на мапи и исписујемо њен кључ и вредност.

Занимљиви Чланци...