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());

代码优化说明:

  1. 使用空列表初始化 pushList,避免使用默认值。
  2. 使用 LinkedHashMap 保留分组后的顺序,并使用 Collectors.toList() 简化代码。
  3. 使用流式编程简化代码,并使用 entry 代替 i 来提高可读性。

代码功能:

该代码首先从 map 中获取名为 'result' 的 List<Push>,然后使用流式编程根据 Push 对象的 module 属性进行分组,并使用 PushConverter 将分组后的 List<Push> 转换为 PushVO 对象列表。最后返回转换后的 PushVO 对象列表。

Java 使用流式编程分组并转换 Push 数据

原文地址: https://www.cveoy.top/t/topic/mVx1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录