将Java for循环转换为Stream流:优化代码示例
您可以通过使用 wightLevelNameGroup 地图的 keySet() 方法将 for 循环转换为一个流,然后使用 map() 方法将每个键转换为一个 SuggestedLevelVO 对象。以下是更新后的代码:
suggestedLevelVOS = wightLevelNameGroup.keySet().stream()
.map(wightLevelName -> {
// 获取不同建议等级所对应的评价总人数
final Map<String, Long> suggestedLevel = wightLevelNameGroup.get(wightLevelName).stream()
.collect(Collectors.groupingBy(SuggestedLevelExportDTO::getSuggestedLevel, Collectors.counting()));
// 获取所有建议等级评价总人数
final Long someWightLeveSuggestedLevelSum = MapUtils.emptyIfNull(suggestedLevel).values().stream()
.mapToLong(Long::longValue)
.sum();
return getObjects(empCodeAndNames, suggestedLevel, someWightLeveSuggestedLevelSum, wightLevelName);
})
.collect(Collectors.toList());
此代码使用 getObjects() 方法将每个 wightLevelName 转换为一个 SuggestedLevelVO 对象,然后使用 collect() 方法将所有对象收集到一个列表中。
原文地址: https://www.cveoy.top/t/topic/qBSq 著作权归作者所有。请勿转载和采集!