场景:
Java8的groupBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map

1.对集合按照单个属性分组
e.g. 按照skuId分组
Map<String, List<EntryDeliveryDetailywk>> detailsMap01 = dtos1.stream()
.collect(Collectors.groupingBy(EntryDeliveryDetailywk::getskuId));
2对集合按照多个属性分组
solution 1 多个属性拼接出一个组合属性
将多个字段拼接成一个新字段,在使用Java8的groupBy进行分组
Map<String, List<EntryDeliveryDetailywk>> 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<NameAge, List<Person>> map = people.collect(Collectors.groupingBy(Person::getNameAge));
solution 3 嵌套调用Java8 groupby
注意得到也是嵌套map
Map<String, Map<Integer, List<Person>>> 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
相关推荐:
专业SEO助力企业在激烈市场竞争中脱颖而出,嘉兴海外网站推广价格
AI一键生成文章免费:革新写作方式,提升创作效率
seo网站是什么东西,seo网站是什么东西啊 ,ai锯齿消失
ChatGPT一经发布,便受到了用户的狂热追捧,引爆人工智能热潮,十代ai达人办公本
什么是seo网络推广seo顾问,seo网络推广员 ,ai20170119
为什么网站要做seo,网站做seo的目的是什么 ,ai初选
ChatGPT异常了:人工智能的极限与突破,ai and ethics
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
seo需要学会什么编程,seo要会些什么 ,剪映怎样加ai
为什么选择B站VIP?让你畅享更丰富的视听体验,小门类网站seo
SEO观看:如何通过优化提升您的网站流量和品牌影响力,龙里网络营销推广
ChatGPT中文版下载免费版:智能对话新时代,尽在,ai光波
seo项目是什么,seo是啥 ,ai ued
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
亚马逊seo信息是什么,亚马逊seo关键词优化软件 ,光谷ai
seo独立站是什么,独立站推广是什么 ,ai曲线笔刷扩展
SEO快速提升SEO排名的有效策略:让你的网页飞跃搜索引擎,ai调色食物
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
文字写作AI生成工具:让创作更简单、更高效
“收录量为1”,打造数字化时代的独特竞争力,网站建设页面制作流程
目前AI软件有哪些?智能新时代的必备工具
智能AI写作生成:如何借助人工智能提升创作效率与质量
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
seo点击工具,seo排名点击软件推荐 ,ai狂躁
seo需要什么器械,seo需要什么器械才能做 ,长续航ai纯电汽车
SEO拓客,让您的业务飞速增长!,密云自适应网站建设
为什么要做seo si,为什么要做* ,ai里面怎么扣二维码
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
SEO深度解析:如何通过深度优化提升网站排名,带来流量和转化,咸宁网站建设大概费用
SEO汇报:如何通过数据分析提升网站排名,助力企业业绩增长,免费推广网站大全百度经验
seo需要做些什么,做seo的 ,超级ai地图
SEO地位:如何提升你的网站排名与曝光度,抢占市场先机,微营销网络推广
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
什么是seo长尾词,什么是seo长尾词的概念 ,绿茶ai换脸杨超越
产品seo什么意思,产品seo标题是什么 ,ai模仿张宇
为什么“搜狗不收录”会成为企业SEO的新挑战?,烤肉店的线下营销与推广
优化高效率:提升个人与企业竞争力的关键,安康网站推广咨询
优化整站,让网站飞速增长,打造行业竞争力,广东网站建设与维护
seo简报什么意思,seo工作汇报 ,万花筒 ai
SEO首选:如何通过优化网站提升排名和流量,简单的网站优化软件
什么是seo模型,seo模块总结 ,ai技术授课
seo软件工具,seo软件是什么 ,AI妆容
ChatGPT打开后空白:如何解决这个困扰并高效使用AI助手,ai四声怎么写
文章AI指令提升写作效率的智能助手
在线AI文章生成:智能写作的无限可能
SEO师:如何在数字时代为企业赢得流量与销量,十堰网站关键词优化教程
SEO但是,这些常见误区你真的知道吗?,凤岗网站建设开发
ChatGPT服务器坏了?了解背后的技术与应对策略,AI模块代表
如何查文章AI率?全面解析AI文章检测工具及技巧
AI.生成重新定义创造力的新纪元