Чтобы отсортировать карту в порядке убывания в Java, вы можете использовать следующие методы:
- TreeMap: Класс TreeMap в Java реализует интерфейс SortedMap и автоматически сортирует записи на основе их естественного порядка или пользовательского компаратора. По умолчанию элементы сортируются по возрастанию, но вы можете изменить порядок, предоставив собственный компаратор, который сортирует элементы по убыванию.
Map<K, V> map = new TreeMap<>(Collections.reverseOrder());
map.putAll(yourMap);
- LinkedHashMap с пользовательским компаратором: класс LinkedHashMap поддерживает порядок вставки элементов. Вы можете создать собственный компаратор и использовать его с методом
sorted()
интерфейса Map.Entry для сортировки записей в порядке убывания.
Map<K, V> map = yourMap.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue(Collections.reverseOrder()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
- Использование потоков Java 8. Вы также можете использовать API потоков Java 8 для сортировки карты по ее значениям в порядке убывания.
Map<K, V> map = yourMap.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue(Collections.reverseOrder()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
Ключевым моментом во всех этих методах является предоставление специального компаратора или изменение естественного порядка для достижения сортировки по убыванию.