我是靠谱客的博主 可爱舞蹈,最近开发中收集的这篇文章主要介绍stream实现多级group,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

0、先来一个简单的,先分组再聚合

Map<String, Double> categoryMap = baseLevelData.stream().collect(Collectors.groupingBy(o -> o.getCategoryL2(), Collectors.summingDouble(o -> o.getBudgetOk2ship())));

1.对象二级 group

Map<String, Map<Integer, List<WoiTargetAlertRuleEntity>>> woiMap = allRuleEntity.stream().collect(Collectors.groupingBy(o -> o.getCountryCode(), Collectors.groupingBy(o -> o.getWoiTarget())));

2. 二级 group,再mapping属性

Map<String, Map<Integer, List<String>>> secondLevelMap = allRuleEntity.stream().collect(Collectors.groupingBy(o -> o.getCountryCode(), Collectors.groupingBy(o -> o.getWoiTarget(), Collectors.mapping(o -> o.getTerritory(), Collectors.toList()))));

3. group,再取每组的第一条数据

Map<String, ScMbgCalendarCmlEntity> quarterMap = calendarHeader.stream().collect(Collectors.groupingBy(ScMbgCalendarCmlEntity::getMfgQtrDesc, Collectors.collectingAndThen(Collectors.toList(), list -> list.get(0))));

最后

以上就是可爱舞蹈为你收集整理的stream实现多级group的全部内容,希望文章能够帮你解决stream实现多级group所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部