JDK-Stream-下游收集器

该代码示例展示了如何使用Java8的StreamAPI对对象集合进行分组。首先,根据对象的equipment属性进行分组,并获取partNumber属性的列表。接着,对特定对象类型过滤后,依据chapterId属性分组,并将对象的数组属性值扁平化为单一字符串列表。
摘要由CSDN通过智能技术生成
// 按照对象的某个属性分组,得到对象某个属性值的数组
final Map<Object, List<Object>> equipmentPartNumberMap =
                    itemIds.stream().collect(
                            Collectors.groupingBy(
                                    map -> map.get("equipment"), Collectors.mapping(
                                            m -> m.get("partNumber"), Collectors.toList())));


// 按照对象类型分组,取对象的数组属性的值并扁平化			
final Map<String, List<String>> collect = stepVos.stream().filter(
                vo -> StepCategoryEnum.FactoryModel.getCategory().equals(vo.getOperationObj().getCategory()))
                .collect(Collectors.groupingBy(StepVO::getChapterId,
                        Collectors.collectingAndThen(Collectors.mapping(vo -> (List<String>) vo.getOperationObj().getValue(),
                                Collectors.toList()), item -> item.stream().flatMap(i -> i.stream()).collect(Collectors.toList()))));
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值