计算Java 8中MyDTO中的amountField之和
private Double getSum(List<MyDTO> myDTOList) {
return myDTOList.stream().map(MyDTO::getAmount).reduce(0d, Double::sum);
}
答案 0 :(得分:5)
您可以使用Stream.mapToDouble
将其转换为DoubleStream
,然后使用DoubleStream.sum
:
return myDTOList.stream().mapToDouble(MyDTO::getAmount).sum();
要提及的是,以上内容同样适用于amount
类型的integer
,而您共享的代码也可以正常工作,如果金额类型已经为{{1} }。
或者您的注释中指出,如果您的DTO对象可以为空,则可以使用以下方法过滤掉这些值:
double