如何从对象列表中检索一个字段并收集到另一个列表中

问题描述 投票:0回答:1

我想从一个列表中获取所有 id 并将它们添加到另一个列表中以传递给进一步的查询。 我有一个 bigquery ,其中输出是 List 。我需要从此列表中检索 id 并将其添加到新列表中,以便我可以进一步使用它。

尝试了以下方法:

来自 BQ 的 bqList 示例: [{id:10,名称:'abc'},{id:13,名称:'dmd'}]

预期输出:List itemList = [10, 13]

尝试了以下方法:

List<String> itemList = (List<String>) bqList.stream() .filter(entity -> entity.getId()!=null) .collect(Collectors.groupingBy(ItemData::getId));

出现以下错误:java.lang.ClassCastException:类java.util.HashMap无法转换为类java.util.List(java.util.HashMap和java.util.List位于加载程序'bootstrap的java.base模块中) ')

我正在使用 Java 8 ,任何帮助将不胜感激。谢谢

java spring-boot google-bigquery
1个回答
0
投票

bqList
这里不是一个
List
的物体。这是一个带有键和值对的
Map
。您正在尝试将
Map
转换为
List
,这会返回
ClassCastException
。 因此,您可以创建一个值的
List
,而不是在地图上运行循环,如下所示
List<String> listOfValues = new ArrayList<String>(bqList.values());
listOfValues
上运行循环。

© www.soinside.com 2019 - 2024. All rights reserved.