Я конвертирую HashMap<String, Double>
в HashMap<String, Double>
, где содержимое сортируется по значению.Когда я распечатываю следующее:
Stream<Map.Entry<String, Double>> sorted = map.entrySet().stream()
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue())).forEach(System.out::println);
, данные распечатываются в правильном порядке, отсортированном по значению.Однако мне не нужно распечатывать данные, я хочу свернуть содержимое этого потока в новый HashMap с новым отсортированным порядком.Я попробовал несколько вариантов, но мне кажется, что я получаю свой исходный несортированный HashMap, когда я делаю это:
return map.entrySet()
.stream()
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
.collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue()));
Как я могу изменить поток так, чтобы я отправлял обратно отсортированный HashMap?