在Java 1.8中将Map <string,list <object =“” >>转换为Map <string,list <string =“” >>

时间:2019-04-04 02:50:54

标签: java

我有一个Map<String, List<Object>>,我想在Java 8中将其转换为Map<String, List<String>>

在Java 1.7中,我使用一个函数从Map中提取值,然后编写了另一个方法声明为空List,该方法用于循环以提取每个元素,然后添加到Java 1.7中的List Object中。

在Java 8中使用lambda表达式做同样的建议

预先感谢

1 个答案:

答案 0 :(得分:1)

您可以使用此:

Map<String, List<String>> result = map.entrySet().stream()
        .map(e -> Map.entry(e.getKey(),
                e.getValue().stream()
                        .map(o -> (String) o) //or Object::toString depending on the object
                        .collect(Collectors.toList())))
        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

Map.entry来自Java 9,如果您使用的是Java 8,则可以使用AbstractMap.SimpleEntry