使用Java Stream API在Map<K,Map<V,X>>中将X类型转换为Y
2022-09-02 23:27:16
我想从地图的地图转换内部地图。
旧地图:整数表示秒Map<String, Map<LocalDate, Integer>>
新地图:Map<String, Map<LocalDate, Duration>>
我已尝试创建新的内部地图,但收到错误
错误:java:找不到适合的方法的方法不适用
putAll(java.util.stream.Stream<java.lang.Object>)
java.util.Map.putAll(java.util.Map<? extends java.time.LocalDate,? extends java.time.Duration>)
oldMap.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey,
e -> new HashMap<LocalDate, Duration>() {{
putAll(
e.getValue().entrySet().stream()
.map(x -> new HashMap.SimpleEntry<LocalDate, Duration>
(x.getKey(), Duration.ofSeconds(x.getValue())))
);
}}
));