private List createScoreRecodeList(final List tableSource, final String activityId) { return tableSource.stream() .flatMap(item -> item.getScoreList().stream()) .flatMap(scoreItem -> TreeBuilderUtil.postorderErgodic(scoreItem).stream()) .map(scoreItem -> createScoreRecode(scoreItem, activityId)) .collect(Collectors.toList()); }

代码优化说明:

原始代码中使用 CollectionUtils.emptyIfNullCollectionUtils.addAll 方法处理空列表的情况,并通过 map 操作对 ScoreList 进行遍历,然后使用 flatMap 操作将多个 ScoreList 合并成一个流。

优化后的代码直接使用 tableSource.stream() 获取数据流,然后通过 flatMap 操作依次遍历 ScoreListTreeBuilderUtil.postorderErgodic(scoreItem) 的结果,最后使用 map 操作将每个 scoreItem 映射为 ScoreRecode 对象,并使用 collect 操作将结果收集成列表。

优化后的代码更简洁,也更易于理解和维护。

优点:

  • 代码更简洁,易于阅读和理解。
  • 使用 Stream API 提高了代码可读性。
  • 减少了不必要的代码,提高了代码效率。

注意:

  • 确保 TreeBuilderUtil.postorderErgodic 方法的返回值是 Collection 类型。
  • createScoreRecode 方法需要根据实际情况进行实现。
Java 代码优化:使用 Stream API 简化 List 映射和转换

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

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