如何从Scala中的Map列表中获取所有值?

Om *_*ash 1 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))
Run Code Online (Sandbox Code Playgroud)

并希望获取所有值并检查上面的Map列表中是否已存在term_id.

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

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

预期产出:

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

Ren*_*kai 6

我认为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)
Run Code Online (Sandbox Code Playgroud)