我想从一个列表中获取所有 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 ,任何帮助将不胜感激。谢谢
bqList
这里不是一个 List
的物体。这是一个带有键和值对的 Map
。您正在尝试将 Map
转换为 List
,这会返回 ClassCastException
。
因此,您可以创建一个值的 List
,而不是在地图上运行循环,如下所示 List<String> listOfValues = new ArrayList<String>(bqList.values());
在 listOfValues
上运行循环。