Atitit 集合分组聚合操作sum count avg java版本groovy版本 目录 1. //按性别统计用户数 1 7. //按性别获取用户名称 1 16. //按性别求年龄的总和 1 2
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
- //按性别统计用户数
- Map<User.Sex, Integer> map = users.parallelStream().collect(
- Collectors.groupingBy(User::getGender,
- Collectors.summingInt(p -> 1)));
- System.out.println(map);
- //按性别获取用户名称
- Map<User.Sex, List<String>> map2 = users.stream()
- .collect(
- Collectors.groupingBy(
- User::getGender,
- Collectors.mapping(User::getName,
- Collectors.toList())));
- System.out.println(map2);
- //按性别求年龄的总和
- Map<User.Sex, Integer> map3 = users.stream().collect(
- Collectors.groupingBy(User::getGender,
- Collectors.reducing(0, User::getAge, Integer::sum)));
- System.out.println(map3);
- //按性别求年龄的平均值
- Map<User.Sex, Double> map4 = users.stream().collect(
- Collectors.groupingBy(User::getGender,
- Collectors.averagingInt(User::getAge)));
- System.out.println(map4);
- // 注意,reduce操作每处理一个元素总是创建一个新值,
- // Stream.reduce适用于返回单个结果值的情况
- //获取所有用户的平均年龄
- private static void reduceAvg() {
- // mapToInt的pipeline后面可以是average,max,min,count,sum
- double avg = users.parallelStream().mapToInt(User::getAge)
- .average().getAsDouble();
- System.out.println("reduceAvg User Age: " + avg);
- }
- //获取所有用户的年龄总和
- private static void reduceSum() {
- double sum = users.parallelStream().mapToInt(User::getAge)
- .reduce(0, (x, y) -> x + y); // 可以简写为.sum()
- System.out.println("reduceSum User Age: " + sum);
- }
- 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
- Groupby 原理。。
- Step1 groupby returns Map<grpbyKey, List>
- Step2 transform List into Map,key is grpbyKey,value is sumAvgListMapProp
- collect
- ref
JDK1.8聚合操作.mhtml
Atitit 集合分组聚合操作sum count avg java版本groovy版本 目录 1. //按性别统计用户数 1 7. //按性别获取用户名称 1 16. //按性别求年龄的总和 1 2相关推荐
- Pandas-高级处理(七):透视表(pivot_table)【以指定列作为行索引对另一指定列的值进行分组聚合操作】、交叉表(crosstab)【统计频率】
交叉表与透视表的作用 交叉表:计算一列数据对于另外一列数据的分组个数 透视表:指定某一列对另一列的关系 一.透视表 透视表是一种可以对数据动态排布并且分类汇总的表格格式. 透视表:透视表是将原有的Da ...
- python 数据分析(六)astype('category')按类别分组 + 分组聚合操作 + 透视表 + 交叉表 + excel表的数据处理
文章目录 一.按照类别单独分类astype() 1. astype()用法 二.时间操作 1. 第一种:直接利用to_datetime() 2. 第二种:Series.dt 三.分组聚合操作 1. 分 ...
- 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 ...
- atitit.集合的filt操作细分 filter总结
atitit.集合的filt操作细分 filter总结 1. Css sltr 1 2. 基本选择器(根据id,class,元素名) 2 3. 层次选择器 3 4. 过滤选择器 3 5. First, ...
- Flink的窗口聚合操作(Time\Count Window)
窗口基本概念:Flink中的窗口是左闭右开的窗口 Flink认为批处理是流处理的一个特例,而窗口window就是从流处理到批处理的一个桥梁,通常来讲窗口就是用来将无线数据流转换为优先数据集,从而在优先 ...
- Python+Pandas数据处理时的分裂与分组聚合操作
开学第一课:一定不要这样问老师Python问题 中国大学MOOC"Python程序设计基础"第6次开课时间 董付国老师Python系列教材推荐与选用参考 ============= ...
- Atitit 数据存储的分组聚合 groupby的实现attilax总结
Atitit 数据存储的分组聚合 groupby的实现attilax总结 1. 聚合操作1 1.1. a.标量聚合 流聚合1 1.2. b.哈希聚合2 1.3. 所有的最优计划的选择都是基于现有统计 ...
- JDK1.8聚合操作
在java8 JDK包含许多聚合操作(如平均值,总和,最小,最大,和计数),返回一个计算流stream的聚合结果.这些聚合操作被称为聚合操作.JDK除返回单个值的聚合操作外,还有很多聚合操作返回一个c ...
- 《深入浅出Pandas:利用Python进行数据处理与分析》——第3部分 数据形式变化_01分组聚合
文章目录 分组聚合操作 分组器 分组对象查看 apply/pipe/transform 数据分箱(data binning),或离散组合或数据分桶 分组可视化,pandas提供的简单的与分组相关的可视 ...
- 如何使用agg函数对数据进行分组聚合
转载自知乎:侦探L 如何使用agg函数对数据进行分组聚合 - 知乎 在上篇文章中,我们详细地介绍了如何使用groupby函数对数据进行分组.而在python的数据分组中,除了groupby函数之外, ...
最新文章
- 微信扫码支付模式二【无法回调】解决方案
- echarts中x轴文字过长换行处理和倾斜处理。
- file watchers怎么默认打开_Python读写文件怎么和我之前学的不一样?
- 私房钱就藏在老婆眼皮底下
- java mod函数的使用方法_java 数学计算的具体使用
- isupper_Python字符串isupper()
- 【FreeRTOS的SOEM-master(1.4.1)移植】
- 一篇文章学懂ADB命令和Monkey命令
- 【PLC】NB触摸屏开发入门
- 计算机无线网络连接怎么弄,Win7系统如何设置无线网络连接?
- Word中字母上方标注特殊符号 完美解决
- 中国大学MOOCPython语言程序设计基础学习笔记和课后练习5-6周(南京邮电大学)
- windows通过bat批处理命令,快速清理系统垃圾文件,释放硬盘空间
- 鼠标失灵了?我来给你解决吧!
- zencart bohase 模板
- 深度学习baseline模型_深度学习模型在序列标注任务中的应用
- oracle监听_保存在,oracle 监听 lsnrctl 命令 (推荐)
- 16行 python代码获取音效素材
- Android App屏幕旋转要点
- GC导致线上CPU超100%
热门文章
- oracle 列出asm磁盘,如何列出ASM磁盘组的所有磁盘
- 模型描述的关系模式_图解各种管理模型大全--管理模型大全
- php 大excel,如何用php生成一个大的Excel文件?
- html5植物生长,关于植物生长的知识
- python 波浪号用法_「波浪号」matlab中波浪号~的作用和用法 - 金橙教程网
- TCP长连接(KeepAlive)
- python基础教程之pymongo库
- JAVA获取各种日期时间
- ASP.NET---动态生成Word文档
- js数据结构hashMap -----hashMap