Програма Java за сортиране на карта по стойности

В тази програма ще се научите да сортирате дадена карта по стойности в Java.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:

  • Интерфейс на Java Map
  • Java LinkedHashMap

Пример: Сортиране на карта по стойности

 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()метод, който взема картата и връща сортираната карта.

Вътре в метода първо създадохме списък с име capitalList от столиците на картата. След това използваме sort()метода на Collectionsза сортиране на елементи от списъка.

В sort()метод отнема два параметъра: списък да се сортират и сравнение . В нашия случай сравнителят е ламбда израз.

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

Тук ламбда изразът взема два съседни елемента (l1 и l2) от списъка. След това използва getValue()метода за получаване на стойността и compareTo()метода за сравняване на две стойности.

След операцията получаваме сортирания списък capitalList. След това просто преобразуваме списъка в LinkedHashMapименен резултат и го връщаме.

Обратно в main()метода, ние обикаляме всеки елемент в картата и отпечатваме неговия ключ и стойност.

Интересни статии...