java-stream求和

前言

最近需要求一个list中的某个字段的和,想到是否可以用stream中的方法,查询了一下,还真是可以,记录一下

实现

我的是计算价格,所以字段类型是BigDecimal,方法如下

1
list.stream().map(Plan::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);

如果是int double long,则方法如下

1
double max = list.stream().mapToDouble(User::getHeight).sum();