groupby java_Java8的groupBy实现集合的分组
场景:
Java8的groupBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map
1.对集合按照单个属性分组
e.g. 按照skuId分组
Map> detailsMap01 = dtos1.stream()
.collect(Collectors.groupingBy(EntryDeliveryDetailywk::getskuId));
1
2
2对集合按照多个属性分组
solution 1 多个属性拼接出一个组合属性
将多个字段拼接成一个新字段,在使用Java8的groupBy进行分组
Map> detailmap = details.stream()
.collect(Collectors.groupingBy(d -> fetchGroupKey(d) ));
private String fetchGroupKey(EntryDeliveryDetailywk detail){
return detail.getSkuId().toString()
+ detail.getItemsName()
+ detail.getWarehouseId().toString()
+ detail.getSupplierId().toString();
}
solution 2 造静态内部类
在集合元素类里构造静态内部类(成员变量即分组的对应多个属性)
e.g.
//静态内部类
class Person {
public static class NameAge {
public NameAge(String name, int age) {
...
}
// 注意 重写方法 must implement equals and hash function
}
public NameAge getNameAge() {
return new NameAge(name, age);
}
}
//分组
Map> map = people.collect(Collectors.groupingBy(Person::getNameAge));
solution 3 嵌套调用Java8 groupby
注意得到也是嵌套map
Map>> map = people
.collect(Collectors.groupingBy(Person::getName,
Collectors.groupingBy(Person::getAge));
//调用
map.get("Fred").get(18);
参考
https://stackoverflow.com/questions/28342814/group-by-multiple-field-names-in-java-8#
groupby java_Java8的groupBy实现集合的分组相关推荐
- java groupbyu_Java8的groupBy实现集合的分组
场景: Java8的groupBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map 1.对集合按照单个属性分组 e.g. 按照skuId分组 Map> detai ...
- pandas使用groupby函数计算dataframe数据中每个分组的N个数值的指数权重移动(滚动)平均、例如,计算某公司的多个店铺每N天(5天)的滚动销售额指数权重移动(滚动)平均
pandas使用groupby函数计算dataframe数据中每个分组的N个数值的指数权重移动(滚动)平均(Exponential Moving Average).例如,计算某公司的多个店铺每N天(5 ...
- pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最大值(rolling max)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最大值
pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最大值(rolling max).例如,计算某公司的多个店铺每N天(5天)的滚动销售额最大值 目录
- pandas编写自定义函数计算多个数据列的加和(sum)、使用groupby函数和apply函数聚合计算分组内多个数据列的加和
pandas编写自定义函数计算多个数据列的加和(sum).使用groupby函数和apply函数聚合计算分组内多个数据列的加和 目录
- pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动计数个数(rolling count)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额计数个数
pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动计数个数(rolling count).例如,计算某公司的多个店铺每N天(5天)的滚动销售额计数个数 目录
- pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动标准差(rolling std)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额标准差
pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动标准差(rolling std).例如,计算某公司的多个店铺每N天(5天)的滚动销售额标准差 目录
- pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动加和(rolling sum)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额加和
pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动加和(rolling sum).例如,计算某公司的多个店铺每N天(5天)的滚动销售额加和 目录
- pandas使用groupby函数计算dataframe数据中每个分组的滚动统计值(rolling statistics)的语法:例如分组的N天滚动平均值、滚动中位数、滚动最大最小值、滚动加和等
pandas使用groupby函数计算dataframe数据中每个分组的滚动统计值(rolling statistics)的语法:例如分组的N天滚动平均值.滚动中位数.滚动最大最小值.滚动加和等 目录
- pandas使用groupby函数和agg函数获取每个分组特定变量独特值的个数(number of distinct values in each group in dataframe)
pandas使用groupby函数和agg函数获取每个分组特定变量独特值的个数(number of distinct values in each group in dataframe) 目录
最新文章
- 手把手从零开始搭建k8s集群超详细教程
- 实现跨浏览器的HTML5占位符
- halcon 定位_HALCON高级篇:单个相机的尺寸测量
- 【渝粤教育】电大中专学习指南 (3)作业 题库
- vue路由匹配实现包容性_成为多元化和包容性领导者的3个关键策略
- qtableview删除选中行_如何批量删除PPT备注+如何修改模板信息
- 现代OpenGL教程 01 - 入门指南
- 药品计算机培训计划,_计算机培训学习计划范文
- 轻量级模型:MobileNet V2
- 关于HTML页面跳转的5种方法分享。
- 怎么看别人的qq空间怎么看加密的qq空间
- 自学成才秘籍!机器学习深度学习经典资料汇总
- 【渝粤题库】陕西师范大学292951 公司金融学Ⅱ 作业(专升本)
- C语言如何定义p1口,求助C51里如何实现P1口输入?置1了还没行哦。
- 基音周期计算(pitch tracking)
- android命令大全 pdf,android调试桥(adb)常用命令.pdf
- Java图形化界面编程超详细知识点(8)——列表框
- 重载和重写的区别是什么
- 【Java】如何编写、运行一个Java程序
- 将MongoDB添加到windows服务中
热门文章
- keepalived 负载 mysql 3306端口问题
- Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之一
- 【源码解读】EOS测试插件:txn_test_gen_plugin.cpp
- JAVA怎么在函数内改变传入的值
- 拉格朗日插值编程实现
- 深度学习三十年创新路
- document.onreadystatechange()来判断页面加载完
- [转]淘宝sdk——入门实战之header.php制作(二)
- request.getRequestURL()和request.getRequestURI()区别
- “docker run”VS“docker exec”,这两个命令有区别吗?