gpt4 book ai didi

java - 从 map 列表列表中收集特定键的值 List
转载 作者:行者123 更新时间:2023-11-29 04:56:20 26 4
gpt4 key购买 nike

我在 Java 类中解析来自服务器的 JSON 响应。我们有将 JSON 转换为 List<Map<String, Object>> 的实用函数.现在我想从所有对象中收集特定键的值。例如,我收到的 JSON 是人的数据,如下所示

[
{
name:'abc',
city: 'Hyd'
},
{
name:'def',
city:'NYC'
}
]

我想尝试使用 Java8 流 API 来完成这项工作,所以我是这样写的

List<Map<String,Object>> answer = parseJSONReponse(response);
List<Object> collect = answer.stream().map(
m -> m.entrySet().stream()
.filter(e-> e.getKey().equals("name"))
.map(e -> e.getValue())
.collect(Collectors.toList())
).flatMap(l->l.stream()).collect(Collectors.toList());

如果有更好的编写此流 API 的方法,请告诉我。

最佳答案

您不需要在mapcollect,然后在flatMap 中创建不必要的中间列表。直接使用flatMap即可:

List<Object> collect = answer.stream().flatMap(
m -> m.entrySet().stream()
.filter(e-> e.getKey().equals("name"))
.map(e -> e.getValue())
).collect(Collectors.toList());

关于java - 从 map 列表列表中收集特定键的值 List<String,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33624572/

26 4 0

Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com