zoukankan      html  css  js  c++  java
  • 使用java8的stream对数组进行求和

    1、对BigDecimal类型的值求和。

    List<Map<String,Object>> list = new ArrayList<>();
    Map<String,Object> stu1 = new HashMap<String, Object>();
    stu1.put("name", "张三");
    stu1.put("score", new BigDecimal(80));
    list.add(stu1);
    Map<String,Object> stu2 = new HashMap<String, Object>();
    stu2.put("name", "李斯");
    stu2.put("score", new BigDecimal(90));
    list.add(stu2);
    Map<String,Object> stu3 = new HashMap<String, Object>();
    stu3.put("name", "王武");
    stu3.put("score", new BigDecimal(60));
    list.add(stu3);

    BigDecimal sum = list.stream().map(
    x -> new BigDecimal(x.get("score").toString())
    ).reduce(BigDecimal.ZERO,BigDecimal::add);

    System.out.println("三人总分:"+sum);

    2、对double型的值求和。

    List<DisProductPo> list2 = new ArrayList<>();
    DisProductPo p1 = new DisProductPo();
    p1.setPrintvalue(120);
    p1.setViewspotticketname("产品1");
    list2.add(p1);
    DisProductPo p2 = new DisProductPo();
    p2.setPrintvalue(80);
    p2.setViewspotticketname("产品2");
    list2.add(p2);
    DisProductPo p3 = new DisProductPo();
    p3.setPrintvalue(50);
    p3.setViewspotticketname("产品3");
    list2.add(p3);

    double sum1 = list2.stream().collect(Collectors.summingDouble(x -> ((Double) x.getPrintvalue())));
    double sum2 = list2.stream().mapToDouble(DisProductPo::getPrintvalue).sum();

    System.out.println("总价格:"+sum1+"--"+sum2);

  • 相关阅读:
    团队贡献分汇总
    【Gamma】Scrum Meeting 1
    【Beta】测试报告
    【Beta】发布说明
    【技术博客】JWT的认证机制Django项目中应用
    Daily Scrumming* 2015.12.17(Day 9)
    Daily Scrumming* 2015.12.16(Day 8)
    Daily Scrumming* 2015.12.15(Day 7)
    Daily Scrumming* 2015.12.13(Day 5)
    Daily Scrumming* 2015.12.12(Day 4)
  • 原文地址:https://www.cnblogs.com/sarly/p/15386111.html
Copyright © 2011-2022 走看看