Есть ли способ сортировки карты по значению внутри этого коллектора без создания нового потока?
Ответ - Нет. Вы можете сортировать только по значению группировки после того, как вы закончили группировать .
Параметры:
- Вам потребуется вызвать метод
stream()
после группировки и отсортировать по значению, а затем собрать на карту. - использовать
collectingAndThen
с функцией отделки, чтобы сделать сортировку и затем собрать на карту.
т.е.
return getTrigraphStream(path)
.collect(collectingAndThen(groupingByConcurrent(Function.identity(), counting()),
map -> map.entrySet().stream().sorted(....).collect(...)));
Кстати, в чем проблема с созданием нового потока?это дешевая операция.