Java:DTO集合内的值总和

时间:2018-11-23 07:13:18

标签: java java-8 sum java-stream

计算Java 8中MyDTO中的amountField之和

private Double getSum(List<MyDTO> myDTOList) {
    return myDTOList.stream().map(MyDTO::getAmount).reduce(0d, Double::sum);
}

1 个答案:

答案 0 :(得分:5)

您可以使用Stream.mapToDouble将其转换为DoubleStream,然后使用DoubleStream.sum

return myDTOList.stream().mapToDouble(MyDTO::getAmount).sum();

要提及的是,以上内容同样适用于amount类型的integer,而您共享的代码也可以正常工作,如果金额类型已经为{{1} }。


或者您的注释中指出,如果您的DTO对象可以为空,则可以使用以下方法过滤掉这些值:

double