Java 使用流式编程分组并转换 Push 数据
Map<String, List<Push>> map = new HashMap<>();
pushMapper.getList(map);
// 使用空列表初始化
List<Push> pushList = map.getOrDefault('result', Collections.emptyList());
return pushList.stream()
// 使用 LinkedHashMap 保留顺序
.collect(Collectors.groupingBy(Push::getModule, LinkedHashMap::new, Collectors.toList()))
.entrySet().stream()
.map(entry -> PushVO.builder()
.module(entry.getKey())
.messageList(PushConverter.INSTANCE.toPushDTO(entry.getValue()))
.build())
.collect(Collectors.toList());
代码优化说明:
- 使用空列表初始化
pushList,避免使用默认值。 - 使用
LinkedHashMap保留分组后的顺序,并使用Collectors.toList()简化代码。 - 使用流式编程简化代码,并使用
entry代替i来提高可读性。
代码功能:
该代码首先从 map 中获取名为 'result' 的 List<Push>,然后使用流式编程根据 Push 对象的 module 属性进行分组,并使用 PushConverter 将分组后的 List<Push> 转换为 PushVO 对象列表。最后返回转换后的 PushVO 对象列表。
原文地址: https://www.cveoy.top/t/topic/mVx1 著作权归作者所有。请勿转载和采集!