前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >List<BigDecimal>求和

List<BigDecimal>求和

作者头像
Blue_007
发布2023-10-21 12:37:40
6060
发布2023-10-21 12:37:40
举报
文章被收录于专栏:代码生涯代码生涯

将 List<BigDecimal> 求和

代码语言:javascript
复制
public static void main(String[] args) {
    List<BigDecimal> list = new ArrayList<>();
    // 假数据
    list.add(BigDecimal.valueOf(1.1));
    list.add(BigDecimal.valueOf(1.2));
    list.add(BigDecimal.valueOf(1.3));
    list.add(BigDecimal.valueOf(1.4));
  // 流式操作
    BigDecimal decimal = list.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
    // 打印结果
    System.out.println(decimal);
}

list.stream().reduce() 1、stream 中的 reduce 的主要作用就是将[stream]中元素进行组合,组合的方式可以是加减乘除,也可以是拼接等。 2、BigDecimal.ZERO就像new BigDecimal(0),它是一个预定义的常量。 3、reduce 一共有三种实现:

  1. T reduce(T identity, BinaryOperator accumulator); 该实现有起始值 identity, 起始值的类型决定了返回结果的类型,通过 accumulator 操作最终得到 identity 类型的返回结果
  2. Optional<T>reduce(BinaryOperator accumulator); 该实现只有一个参数 accumulator , 由于没有办法确定具体的返回结果,所以该方法返回的是 Optional
  3. <U> U reduce(U identity, BiFunction accumulator, BinaryOperator combiner); 该方法有三个参数 identity 、 accumulator 、combiner ,该方法通过 identity 和 accumulator的处理得出最终结果,结果和第一个参数的类型相同

而我们使用的方便是第一种reduce的实现,需要传入一个BinaryOperator接口,继承了BiFunction接口 简单说 就是需要传入2个同类型参数,返回同类型的参数

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 代码生涯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档