Atitit 集合分组聚合操作sum count avg java版本groovy版本

目录

1. //按性别统计用户数 1

7. //按性别获取用户名称 1

16. //按性别求年龄的总和 1

23. //按性别求年龄的平均值 2

3. //获取所有用户的平均年龄 2

12. //获取所有用户的年龄总和 2

1. Groovy  sum 3

2. Groupby 原理。。 4

2.1. Step1 groupby  returns Map<grpbyKey, List> 4

2.2. Step2    transform List into Map,key is grpbyKey,value is sumAvgListMapProp 4

2.3. collect 4

3. ref 4

  1. //按性别统计用户数
  2. Map<User.Sex, Integer> map = users.parallelStream().collect(
  3. Collectors.groupingBy(User::getGender,
  4. Collectors.summingInt(p -> 1)));
  5. System.out.println(map);
  6. //按性别获取用户名称
  7. Map<User.Sex, List<String>> map2 = users.stream()
  8. .collect(
  9. Collectors.groupingBy(
  10. User::getGender,
  11. Collectors.mapping(User::getName,
  12. Collectors.toList())));
  13. System.out.println(map2);
  14. //按性别求年龄的总和
  15. Map<User.Sex, Integer> map3 = users.stream().collect(
  16. Collectors.groupingBy(User::getGender,
  17. Collectors.reducing(0, User::getAge, Integer::sum)));
  18. System.out.println(map3);
  19. //按性别求年龄的平均值
  20. Map<User.Sex, Double> map4 = users.stream().collect(
  21. Collectors.groupingBy(User::getGender,
  22. Collectors.averagingInt(User::getAge)));
  23. System.out.println(map4);
  1. // 注意,reduce操作每处理一个元素总是创建一个新值,
  2. // Stream.reduce适用于返回单个结果值的情况
  3. //获取所有用户的平均年龄
  4. private static void reduceAvg() {
  5. // mapToInt的pipeline后面可以是average,max,min,count,sum
  6. double avg = users.parallelStream().mapToInt(User::getAge)
  7. .average().getAsDouble();
  8. System.out.println("reduceAvg User Age: " + avg);
  9. }
  10. //获取所有用户的年龄总和
  11. private static void reduceSum() {
  12. double sum = users.parallelStream().mapToInt(User::getAge)
  13. .reduce(0, (x, y) -> x + y); // 可以简写为.sum()
  14. System.out.println("reduceSum User Age: " + sum);
  15. }
  1. Groovy  sum

def errorCodeList = [

[code: "code1", language: 2, content: "aaa"],

[code: "code1", language: 4, content: "bbbb"],

[code: "code2", language: 3, content: "ccc"],

]

//  first groupBy, which returns Map<grpbyKey, List>

def b =  errorCodeList.groupBy {

it.code

}.collect  {

//Entries

// ...and transform List into Map

code, List value ->

def line=[(code): value.sum { e->e.language }]

return  line

//return a map

}

//[code1:6, code2:3]

println b

  1. Groupby 原理。。

    1. Step1 groupby  returns Map<grpbyKey, List>
    2. Step2    transform List into Map,key is grpbyKey,value is sumAvgListMapProp
    3. collect  
  2. ref

JDK1.8聚合操作.mhtml

Atitit 集合分组聚合操作sum count avg java版本groovy版本 目录 1. //按性别统计用户数 1 7. //按性别获取用户名称 1 16. //按性别求年龄的总和 1 2相关推荐

  1. Pandas-高级处理(七):透视表(pivot_table)【以指定列作为行索引对另一指定列的值进行分组聚合操作】、交叉表(crosstab)【统计频率】

    交叉表与透视表的作用 交叉表:计算一列数据对于另外一列数据的分组个数 透视表:指定某一列对另一列的关系 一.透视表 透视表是一种可以对数据动态排布并且分类汇总的表格格式. 透视表:透视表是将原有的Da ...

  2. python 数据分析(六)astype('category')按类别分组 + 分组聚合操作 + 透视表 + 交叉表 + excel表的数据处理

    文章目录 一.按照类别单独分类astype() 1. astype()用法 二.时间操作 1. 第一种:直接利用to_datetime() 2. 第二种:Series.dt 三.分组聚合操作 1. 分 ...

  3. python和R对dataframe的分组聚合操作:dplyr、groupby、agg、group_by、nunique、reset_index、rename、summarise、n_distinct

    python和R对dataframe的分组聚合操作:dplyr.groupby.agg.group_by.nunique.reset_index.rename.summarise.n_distinct ...

  4. atitit.集合的filt操作细分 filter总结

    atitit.集合的filt操作细分 filter总结 1. Css sltr 1 2. 基本选择器(根据id,class,元素名) 2 3. 层次选择器 3 4. 过滤选择器 3 5. First, ...

  5. Flink的窗口聚合操作(Time\Count Window)

    窗口基本概念:Flink中的窗口是左闭右开的窗口 Flink认为批处理是流处理的一个特例,而窗口window就是从流处理到批处理的一个桥梁,通常来讲窗口就是用来将无线数据流转换为优先数据集,从而在优先 ...

  6. Python+Pandas数据处理时的分裂与分组聚合操作

    开学第一课:一定不要这样问老师Python问题 中国大学MOOC"Python程序设计基础"第6次开课时间 董付国老师Python系列教材推荐与选用参考 ============= ...

  7. Atitit  数据存储的分组聚合 groupby的实现attilax总结

    Atitit  数据存储的分组聚合 groupby的实现attilax总结 1. 聚合操作1 1.1. a.标量聚合 流聚合1 1.2. b.哈希聚合2 1.3. 所有的最优计划的选择都是基于现有统计 ...

  8. JDK1.8聚合操作

    在java8 JDK包含许多聚合操作(如平均值,总和,最小,最大,和计数),返回一个计算流stream的聚合结果.这些聚合操作被称为聚合操作.JDK除返回单个值的聚合操作外,还有很多聚合操作返回一个c ...

  9. 《深入浅出Pandas:利用Python进行数据处理与分析》——第3部分 数据形式变化_01分组聚合

    文章目录 分组聚合操作 分组器 分组对象查看 apply/pipe/transform 数据分箱(data binning),或离散组合或数据分桶 分组可视化,pandas提供的简单的与分组相关的可视 ...

  10. 如何使用agg函数对数据进行分组聚合

    转载自知乎:侦探L  如何使用agg函数对数据进行分组聚合 - 知乎 在上篇文章中,我们详细地介绍了如何使用groupby函数对数据进行分组.而在python的数据分组中,除了groupby函数之外, ...

最新文章

  1. 微信扫码支付模式二【无法回调】解决方案
  2. echarts中x轴文字过长换行处理和倾斜处理。
  3. file watchers怎么默认打开_Python读写文件怎么和我之前学的不一样?
  4. 私房钱就藏在老婆眼皮底下
  5. java mod函数的使用方法_java 数学计算的具体使用
  6. isupper_Python字符串isupper()
  7. 【FreeRTOS的SOEM-master(1.4.1)移植】
  8. 一篇文章学懂ADB命令和Monkey命令
  9. 【PLC】NB触摸屏开发入门
  10. 计算机无线网络连接怎么弄,Win7系统如何设置无线网络连接?
  11. Word中字母上方标注特殊符号 完美解决
  12. 中国大学MOOCPython语言程序设计基础学习笔记和课后练习5-6周(南京邮电大学)
  13. windows通过bat批处理命令,快速清理系统垃圾文件,释放硬盘空间
  14. 鼠标失灵了?我来给你解决吧!
  15. zencart bohase 模板
  16. 深度学习baseline模型_深度学习模型在序列标注任务中的应用
  17. oracle监听_保存在,oracle 监听 lsnrctl 命令 (推荐)
  18. 16行 python代码获取音效素材
  19. Android App屏幕旋转要点
  20. GC导致线上CPU超100%

热门文章

  1. oracle 列出asm磁盘,如何列出ASM磁盘组的所有磁盘
  2. 模型描述的关系模式_图解各种管理模型大全--管理模型大全
  3. php 大excel,如何用php生成一个大的Excel文件?
  4. html5植物生长,关于植物生长的知识
  5. python 波浪号用法_「波浪号」matlab中波浪号~的作用和用法 - 金橙教程网
  6. TCP长连接(KeepAlive)
  7. python基础教程之pymongo库
  8. JAVA获取各种日期时间
  9. ASP.NET---动态生成Word文档
  10. js数据结构hashMap -----hashMap