List使用Stream对BigDecimal求和方法

  • Post author:
  • Post category:其他

      工作中经常碰到List中的对象为BigDecimal类型的,用习惯Stream后,如果用for或者iterator遍历来累加感觉很麻烦,就上网上找了一些方法,希望能帮到大家。

        BigDecimal result2 = userList.stream()
                // 将user对象的age取出来map为Bigdecimal
                .map(User::getAge)
                // 使用reduce()聚合函数,实现累加器
                .reduce(BigDecimal.ZERO,BigDecimal::add);
  • reduce是一个终结操作,它能够通过某一个方法,对元素进行削减操作。该操作的结果会放在一个Optional变量里返回。可以利用它来实现很多聚合方法比如count,max,min等。 
  • T reduce(T identity, BinaryOperator accumulator);
  •  第一个参数是我们给出的初值,第二个参数是累加器,可以自己用实现接口完成想要的操作,这里使用Bigdecimal的add方法 最后reduce会返回计算后的结果

版权声明:本文为sunayn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。