Это было бы невозможно, так как значение, которое вы ищете при сопоставлении с Balance
объектами, может быть оценено только после итерации всех записей в списке MonthlyBalancedBooking
.
new Balance(localDateDoubleEntry.getValue(), localDateDoubleEntry.getKey())
Альтернативным способом перемещения потока в рамках одной операции терминала может быть использование collectingAndThen
как:
public List<Balance> mapToBalancesWithSumAmounts(List<MonthlyBalancedBooking> entries) {
return entries.stream()
.collect(Collectors.collectingAndThen(
Collectors.groupingBy(MonthlyBalancedBooking::getValidFor,
Collectors.summingDouble(MonthlyBalancedBooking::getAmount)),
map -> map.entrySet().stream()
.map(entry -> new Balance(entry.getValue(), entry.getKey()))))
.collect(Collectors.toList());
}