首页 > 其他分享 >Stream 分组,BigDecimal求和汇总

Stream 分组,BigDecimal求和汇总

时间:2022-08-29 09:36:01浏览次数:64  
标签:map BigDecimal Stream 汇总 分组 ChartDataView resultItem

                // 分组
		Map<String, List<ChartDataView>> map = data.stream().map(t -> {
			ChartDataView c = new ChartDataView();
			c.setDimension1(t.getDimension10());
			c.setTarget1(t.getTarget7());
			return c;
		}).collect(Collectors.groupingBy(ChartDataView::getDimension1));
		// 汇总
		for (String s : map.keySet()) {
			List<ChartDataView> l = map.get(s);
			ChartDataView resultItem = new ChartDataView();
			BigDecimal sum = l.stream().map(e -> e.getTarget1()).reduce(BigDecimal.ZERO, BigDecimal::add);
			resultItem.setDimension1(s);
			resultItem.setTarget1(sum);
			res.add(resultItem);
		}

标签:map,BigDecimal,Stream,汇总,分组,ChartDataView,resultItem
From: https://www.cnblogs.com/jqccan/p/16634773.html

相关文章

  • stream.sum List和json互转
    原文链接:https://blog.csdn.net/fighting_xuan/article/details/112609463https://blog.csdn.net/weixin_49186526/article/details/116098255//这两部分效果相同mo......
  • java自定义stream
    一、流程1//自定义集合,继承ArrayList,与ArrayList没啥区别SelfList<Apple>appleList=newSelfList<>();importjava.util.ArrayList;importjav......
  • stream() 参数拆分
    publicstaticvoidmain(String[]args){List<String>list=newArrayList<String>(){{this.add("a,b");......
  • stream() 简单示例
    publicstaticvoidmain(String[]args){List<Integer>list=newArrayList<>();list.add(1);list.add(2);list.add(3);......
  • BigDecimal相除并保留小数后两位
    /***使用BigDecimal精确计算相除*@returnString*/publicstaticStringdivideForBigDecimal(Integera,Integerb){BigDecimalbigDecimal=newBigDecimal(a......
  • StreamWriter写txt文本乱码问题
    Encodingcode=Encoding.UTF8;TextWritersw=newStreamWriter(path,true,code);sw.WriteLine(content);以上代码在Windows执行写入文件没有出现乱码问题,但是在......
  • Mysql按日、周、月进行分组统计
    1)按天统计:selectDATE_FORMAT(start_time,'%Y%m%d')days,count(product_no)countfromtestgroupbydays;2)按周统计:selectDATE_FORMAT(start_time,'%Y%u')week......
  • CentOS8错误:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlis
    CentOSLinux8在2022年12月31日来到生命周期终点(EndofLife,EoL)。即CentOSLinux8操作系统版本结束了生命周期(EOL),Linux社区已不再维护该操作系统版本。所以原来的CentOS......
  • Java -> Stream入门
    学习Stream的目的函数式编程渐渐变成主流,为了看懂同事的代码。相对于传统的编程方式,代码更为简洁清晰易懂。使得并发编程变得如此简单。有效的避免了代码嵌套......
  • JAVA BigDecimal
    加减乘除BigDecimalqtySettleTotal=qtySettleTotal.setScale(2,BigDecimal.ROUND_HALF_UP);BigDecimalqtyYF=this.txtqtyYF.getBigDecimalValue().setScale(2,B......