您可以通过使用 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() 方法将所有对象收集到一个列表中。

将Java for循环转换为Stream流:优化代码示例

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

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