我如何从 List<Map<String,String>>
中提取值(不是键) , 并将其展平为 List<String>
?
即尝试了以下但不起作用。
List<Map<String,String>> mapList = .... ;
List<String> valueList = mapList.stream()
.map(o -> o.getValue())
.collect(Collectors.toList());
我也想通过给定的键过滤结果。
最佳答案
你的意思是:
List<String> valueList = mapList.stream()
.flatMap(a -> a.values().stream())
.collect(Collectors.toList());
编辑
What if I want to specify a key e.g. I have "id" and "firstName", but only want "firstName"
在这种情况下,您可以在 flatmap
之后使用 filter
,如下所示:
List<String> valueList = mapList.stream()
.flatMap(a -> a.entrySet().stream())
.filter (e -> e.getKey().equals("firstName"))
.map(Map.Entry::getValue)
.collect(Collectors.toList ());
关于java - 从 List<Map<String,String>> 中提取值(不是键),并将其展平为 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50644868/