Программа на Java для сортировки карты по значениям

В этой программе вы научитесь сортировать данную карту по значениям в Java.

Чтобы понять этот пример, вы должны знать следующие темы программирования Java:

  • Интерфейс карты Java
  • 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()методу, мы перебираем каждый элемент на карте и печатаем его ключ и значение.

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