У овом програму научићете сортирање дате мапе према вредностима у Јави.
Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања Јава:
- Јава Мап Интерфаце
- Јава ЛинкедХасхМап
Пример: Сортирање карте према вредностима
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()
методи, петљу вршимо кроз сваку ставку на мапи и исписујемо њен кључ и вредност.