Вам необходимо отсортировать список расходов с помощью компаратора.
После того, как вы закончите заполнять treeMap (я не уверен, зачем вам нужна здесь карта дерева), вы можете сделать:
return map.entrySet()
.stream()
.flatMap(entry -> entry.getValue().stream())
.collect(Collectors.collectingAndThen(Collectors.toList(), result -> result.stream()
.sorted(Comparator.comparingInt(Expense::getValue).reversed())
.collect(Collectors.toList())));
Он передает записи карты и выполняет FlatMaps, так какvalue - это список, который собирает его в список (как вы используете последний цикл for
).Затем он сортирует список, используя переданный Comparator
, который сортирует список в обратном порядке (reversed()
) и снова собирает результат в список.