在java中更改嵌套映射中的内部值类型的最简单方法是什么?

在java中更改嵌套映射中的内部值类型的最简单方法是什么?,java,java-stream,nested-map,Java,Java Stream,Nested Map,我有一个嵌套的mapmap传递给我,我想把它改为typemap,在Java中使用stream最简单的方法是什么?我曾尝试使用Collectors.groupingBy,但无法使其工作。最好的方法是迭代外部映射和内部映射中的每个条目,然后将内部映射条目值List转换为Set Map<String, Map<String, Set<ObjectA>>> resultMap = map.entrySet().stream() .collect

我有一个嵌套的map
map
传递给我,我想把它改为type
map
,在Java中使用stream最简单的方法是什么?我曾尝试使用Collectors.groupingBy,但无法使其工作。

最好的方法是迭代外部映射和内部映射中的每个条目,然后将内部映射条目值
List
转换为
Set

Map<String, Map<String, Set<ObjectA>>> resultMap = map.entrySet().stream()
            .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().entrySet().stream()
                    .collect(Collectors.toMap(Map.Entry::getKey, val -> new HashSet<>(val.getValue())))));
Map<String, Map<String, Set<ObjectA>>> resultMap = map.entrySet().stream()
            .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().entrySet().stream()
                    .collect(Collectors.toMap(Map.Entry::getKey, val -> new LinkedHashSet<>(val.getValue())))));