// 按照对象的某个属性分组,得到对象某个属性值的数组
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()))));
JDK-Stream-下游收集器
最新推荐文章于 2024-11-09 12:43:52 发布
该代码示例展示了如何使用Java8的StreamAPI对对象集合进行分组。首先,根据对象的equipment属性进行分组,并获取partNumber属性的列表。接着,对特定对象类型过滤后,依据chapterId属性分组,并将对象的数组属性值扁平化为单一字符串列表。
摘要由CSDN通过智能技术生成