Java Stream 转换 Map<String, Map<String, Map<String, StatisticsResultDTO>>> 为 Map<String, Map<String, StatisticsResultDTO>>
您可以使用Stream的flatMap方法和collectors的toMap方法来实现这个转换。下面是一个示例代码:
Map<String, Map<String, StatisticsResultDTO>> result = integrityLevelSubtotal.values().stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(
Map.Entry::getKey,
entry -> entry.getValue().values().iterator().next()
));
这里的代码首先使用values().stream()将integrityLevelSubtotal中的中间Map转换为Stream。然后使用flatMap方法将每个中间Map的entry转换为Stream,这样就可以得到一个包含所有entry的Stream。
最后使用collect方法结合Collectors.toMap来将Stream中的entry转换为最终的Map。在toMap方法中,我们将entry的key作为最终Map的key,将entry的value中的第一个StatisticsResultDTO作为最终Map的value。
这样就能得到一个去除了中间Map的key的新的Map。
原文地址: http://www.cveoy.top/t/topic/lToa 著作权归作者所有。请勿转载和采集!