【发布时间】:2017-11-01 04:03:39
【问题描述】:
我想从地图的地图转换内部地图。
旧地图: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())))
);
}}
));
【问题讨论】:
标签: java dictionary java-8 java-stream collectors