Програма 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()методу, ми прокручуємо кожен елемент на карті та друкуємо його ключ та значення.

Цікаві статті...