【发布时间】:2018-09-18 11:06:32
【问题描述】:
我有一张地图Map<String, Set<String>>
Map<String, Set<String> result = map.entrySet().parallelStream().collect(
Collectors.groupingBy(Map.Entry::getValue, Collectors.mapping(Map.Entry::getKey, Collectors.toSet())));
我想将其转换为 Map<String, Set<String>> 。通过对值进行分组并交换键和值的位置。
但是这条线给了我
Type mismatch: cannot convert from Map<Object,Set<Object>> to Map<String,Set<String>>
【问题讨论】:
-
需要将
Object的值解析为String。 -
可能像this ?
-
您的问题标题与您的问题描述不符。此外,您说您想将映射转换为
Map<Set<String>, Set<String>>,但使用完全不同的类型声明result变量(并且缺少>)。因此,出现编译器错误也就不足为奇了。 -
@Holger 也许
Type mismatch: cannot convert from Map<Object,Set<Object>> to Map<String,Set<String>>是它的症结所在?同意,尽管问题很混乱。 -
@nullpointer 只要 OP 不决定将什么转换为什么,就没有必要考虑编译器错误。有三个完全不同的问题陈述,问题的标题、问题的文本和代码示例。当我更改代码示例以匹配 OP 在文本描述中写的内容时,没有编译器错误。
标签: java java-8 java-stream