Java 如何从Scala中的映射列表中获取所有值?

Java 如何从Scala中的映射列表中获取所有值?,java,scala,hashmap,Java,Scala,Hashmap,我有一张地图清单 List(Map(term_id -> 20898477-2374-4d4c-9af0-8ed9c9829c94), Map(term_id -> 6d949993-1593-4491-beae-eb9bf8abcf27), Map(term_id -> 1123c413-3ffd-45ed-8215-dd1bccb3a48f)) 并希望获取所有值,并检查上面的映射列表中是否已经存在一个术语_id 这可以通过迭代列表和检查每个映射的值来完成。但我想要更有

我有一张地图清单

List(Map(term_id -> 20898477-2374-4d4c-9af0-8ed9c9829c94), 
Map(term_id -> 6d949993-1593-4491-beae-eb9bf8abcf27), 
Map(term_id -> 1123c413-3ffd-45ed-8215-dd1bccb3a48f))
并希望获取所有值,并检查上面的映射列表中是否已经存在一个术语_id

这可以通过迭代列表和检查每个映射的值来完成。但我想要更有效的东西和一个班轮。我对Java或Scala方法都没有意见

这个问题可能很幼稚,但我不知道如何继续。我是Java/Scala新手

预期输出:

List(20898477-2374-4d4c-9af0-8ed9c9829c94, 6d949993-1593-4491-beae-eb9bf8abcf27,
123c413-3ffd-45ed-8215-dd1bccb3a48f)

您可以使用下面的代码来获取值列表

   val maplist=List(Map("term_id" -> "20898477-2374-4d4c-9af0-8ed9c9829c94"), Map("term_id" -> "6d949993-1593-4491-beae-eb9bf8abcf27"), Map("term_id" -> "1123c413-3ffd-45ed-8215-dd1bccb3a48f"))

    maplist.map(x=>x.get("term_id")
输出:

List[Option[String]] = List(Some(20898477-2374-4d4c-9af0-8ed9c9829c94), Some(6d949993-1593-4491-beae-eb9bf8abcf27), Some(1123c413-3ffd-45ed-8215-dd1bccb3a48f))

我认为flatMap是您想要的:

val maplist=List(Map("term_id" -> "20898477-2374-4d4c-9af0-8ed9c9829c94"), Map("term_id" -> "6d949993-1593-4491-beae-eb9bf8abcf27"), Map("term_id" -> "1123c413-3ffd-45ed-8215-dd1bccb3a48f"))

maplist.flatMap(_.values)
//res0: List[String] = List(20898477-2374-4d4c-9af0-8ed9c9829c94, 6d949993-1593-4491-beae-eb9bf8abcf27, 1123c413-3ffd-45ed-8215-dd1bccb3a48f)

maplist.flatMap(_.keys)
//res1: List[String] = List(term_id, term_id, term_id)

如果使用相同的数据结构,那么遍历每个元素确实是最有效的方法used@StinePike,是否可以解包映射列表并在不迭代的情况下找到任何包含
元素
作为值的映射?映射中有什么?看起来每个地图只包含一个条目。是的,地图列表中每个地图的键都是相同的,每个地图都包含一个条目。您能列出您想要的最终输出吗?