MyTetra Share
Делитесь знаниями!
Сортировка Map через stream
Время создания: 23.10.2019 14:17
Раздел: INFO - Development - JAVA
Запись: wwwlir/Tetra/master/base/1571811460pz62uzvz69/text.html на raw.githubusercontent.com

Вывод содержимого по возрастанию значения:

map.entrySet().stream()

.sorted(Map.Entry.comparingByValue())

.forEach(System.out::println);

Если нужен обратный порядок:

map.entrySet().stream()

.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))

.forEach(System.out::println);

Если нужно все это сложить в Map, сохранив порядок:

Map<Integer, Integer> orderedMap = map.entrySet().stream()

.sorted(Entry.comparingByValue())

.collect(LinkedHashMap::new,

(m, c) -> m.put(c.getKey(), c.getValue()),

LinkedHashMap::putAll);

Map<String, String> map = new HashMap<>();

        map.put("Russia", "Moscow");
        map.put("Turkey", "Ankara");
        map.put("England", "London");
        map.put("Australia", "Canberra");

        LinkedHashMap<String, String> collect = map
                .entrySet()
                .stream()
                .sorted(comparingByKey())
                .collect(toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new));
Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования