我们有以下内容:
public List<Balance> mapToBalancesWithSumAmounts(List<MonthlyBalancedBooking> entries) {
return entries
.stream()
.collect(
groupingBy(
MonthlyBalancedBooking::getValidFor,
summingDouble(MonthlyBalancedBooking::getAmount)
)
)
.entrySet()
.stream()
.map(localDateDoubleEntry -> new Balance(localDateDoubleEntry.getValue(), localDateDoubleEntry.getKey()))
.collect(toList());
}
是否有可能避免代码中的第二个stream()路径,因此在我们的案例中,groupingBy()的结果应该是一个列表。我们需要传递map()函数进行收集或分组的可能性在Java 8中是否可行?
尝试一下
entries.stream()
.collect( groupingBy(
MonthlyBalancedBooking::getValidFor,
Collectors.mapping(summingDouble(MonthlyBalancedBooking::getAmount),toList())
)
);