reducing简介
reducing 是一个收集器(操作),从字面意义上可以理解为“减少操作”:输入多个元素,在一定的操作后,元素减少。

reducing 有多个重载方法,其中一个方法如下:

public static <T> Collector<T,?,Optional<T>> reducing(BinaryOperator<T> op)

以上方法,JDK对其的描述是:

Returns a Collector which performs a reduction of its input elements
under a specified BinaryOperator. The result is described as an
Optional. (返回一个收集器,该收集器在指定的二进制操作符下执行其输入元素的减少。结果被描述为可选的 。)

 List<Map<String, Object>> result = new ArrayList<>();//1Map<String, BigDecimal> collect= result.stream().collect(Collectors.groupingBy(x->x.get("dev").toString(),Collectors.reducing(BigDecimal.ZERO,t->(BigDecimal)t.get("price"), (v1, v2) -> v1.add(v2))));//2Map<String, BigDecimal> collect2= result.stream().collect(Collectors.groupingBy(x->x.get("dev").toString(),Collectors.reducing(BigDecimal.ZERO,t->(BigDecimal)t.get("price"), BigDecimal::add)));

其他参考

  //4Map<String, Double> collect4= result.stream().collect(Collectors.groupingBy(x->x.get("dev").toString(),Collectors.summingDouble(x-> (double) x.get("price"))));//5Map<String, DoubleSummaryStatistics> collect5= result.stream().collect(Collectors.groupingBy(x->x.get("dev").toString(),Collectors.summarizingDouble(x-> (double) x.get("price"))));System.out.println("price:"+collect5.get("collect4"));//DoubleSummaryStatistics //getSum()——获取和//getMax()——获取最大值//getMin()——获取最小值//getAverage()——获取平均值//getCount()——获取数据量System.out.println("price:"+collect5.get("collect4").getSum());

java8 Stream分组求和 reducing相关推荐

  1. java stream 分组求和_Java stream List 求和、分组操作

    Java stream List 求和.分组操作 前言 项目中经常会使用Stream操作一些集合数据,今天记录一下我经常使用的Stream操作 求和操作public static void main( ...

  2. java8 stream 分组_Java 8 中 Map 骚操作之 merge() 的用法

    作者:LQ木头来源:http://juejin.im/post/5d9b455ae51d45782b0c1bfb Java 8 最大的特性无异于更多地面向函数,比如引入了 lambda等,可以更好地进 ...

  3. Java8 Stream:两万字博文教你玩转集合的筛选、归约、分组、聚合

    目录 一.Stream概述 二.Stream 的创建 三.Stream 的中间操作 3.1.筛选(filter/distinct) 3.2.切片(limit/skip) 3.3.映射(map/mapT ...

  4. Java8 Stream:20+实际例子,玩转集合的筛选、归约、分组、聚合

    来源: https://blog.csdn.net/mu_wind/article/details/109516995 Java8中的stream,可大幅提升咱们的开发效率,带大家看下stream到底 ...

  5. Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

    Java8 Stream 1 Stream概述 2 Stream的创建 3 Stream的使用 案例使用的员工类 3.1 遍历/匹配(foreach/find/match) 3.2 筛选(filter ...

  6. Java8 Stream 流的创建、筛选、映射、排序、归约、分组、聚合、提取与组合、收集、接合、foreach遍历

    目录 一  了解Stream 1 Stream概述 那么什么是Stream? Stream可以由数组或集合创建 Stream有几个特性: Stream流的起始操作 2 Stream的创建----Str ...

  7. java steam 排序_java8 stream自定义分组求和并排序的实现

    本文主要介绍了java8 stream自定义分组求和并排序的实现,分享给大家,具体如下: public static void main(String[] args) { List list = ne ...

  8. java stream实现分组BigDecimal求和,自定义分组求和

    前言 随着微服务的发展,越来越多的sql处理被放到java来处理,数据库经常会使用到对集合中的数据进行分组求和,分组运算等等. 那怎么样使用java的stream优雅的进行分组求和或运算呢? 一.准备 ...

  9. 20个实例玩转Java8 Stream

    20个实例玩转Java8 Stream 20个实例玩转Java8 Stream Stream概述 Stream的创建 stream和parallelStream的简单区分 stream的使用 遍历/匹 ...

  10. java8 .stream().map().collect() 的用法

    API: https://www.runoob.com/java/java8-streams.html mylist.stream().map(myfunction->{return item; ...

最新文章

  1. Master 横扫围棋各路高手,是时候全面研究通用人工智能了!
  2. 数据库中存储日期的字段类型究竟应该用varchar还是datetime ?
  3. USACO翻译:USACO 2014 DEC Silver三题
  4. weblogic获取应用目录路径
  5. 初学者如何选择合适的机器学习算法(附算法速查表)
  6. Leet Code OJ 28. Implement strStr() [Difficulty: Easy]
  7. 案例 TreeView动态控制节点 c# 1614264758
  8. 网络编程和反射的基本知识点的总结
  9. jieba源码分析(一)
  10. 你不可不知道的React生命周期
  11. python发音模块-python 利用pyttsx3文字转语音过程详解
  12. idea安装插件gitee、插件商店里搜不到插件?
  13. 【JS】match() 方法
  14. 云计算概念及发展历程
  15. 嗅探原理与反嗅探技术详解
  16. 如何在电脑中找到Win10自带锁屏壁纸
  17. 来自北京大学NOIP金牌选手yxc的常用代码模板2——数据结构
  18. 第一篇图像处理论文审稿意见修改说明
  19. Github一夜爆火的阿里术小册究竟有什么魅力?才能引大家趋之若鹜
  20. 机器学习之西瓜书绪论--关于机器学习的简单介绍

热门文章

  1. 【Flutter实战静态页面】--在线点餐app(7)——页面跳转
  2. 无线路由器显示无服务器,路由器没信号怎么办?三招教你解决问题!
  3. 【Android 逆向】ART 脱壳 ( dex2oat 脱壳 | /art/dex2oat/dex2oat.cc#Dex2oat 函数源码 )
  4. 导入Android 项目,按钮点击事件,添加okhttp三合一,android动态修改标题
  5. 上传即可使用的在线缩短网址源码
  6. centos6.5配置静态IP 时,出现BCAST不能设置的问题
  7. php融云开发文档,融云公众服务
  8. java开发融云web聊天
  9. android 根据宽度调整字体大小,android根据分辨率自动调整字体大小的实例代码
  10. Android 修改手机状态栏文字颜色