scala convert地图列表

Muh*_*han 4 scala

我有一个简单的问题

我有这样的地图列表

List(
      Map("a" -> "a"),
      Map("b" -> "b")
    )
Run Code Online (Sandbox Code Playgroud)

我想要这样的结果

Map(
  "a"->"a",
  "b"->"b"
)
Run Code Online (Sandbox Code Playgroud)

如果密钥是重复的,它可以覆盖任何一个请帮助我

And*_* T. 7

您可以结合flattentoMap:

val list = List(Map("k1" -> "v1", "k2" -> "v2"))
list.flatten.toMap // Map(k1 -> v1, k2 -> v2)
Run Code Online (Sandbox Code Playgroud)

flatten将地图列表toMap转换为元组列表,然后将元组列表转换为地图.


Pav*_*ran 5

您可以尝试使用reduce:

scala> val list = List(Map("k1" -> "v1", "k2" -> "v2"))
list: List[scala.collection.immutable.Map[String,String]] = List(Map(k1 -> v1, k2 -> v2))

scala> list.reduce(_ ++ _)
res0: scala.collection.immutable.Map[String,String] = Map(k1 -> v1, k2 -> v2)

scala> val list = List(Map("k1" -> "v1"), Map("k2" -> "v2"))
list: List[scala.collection.immutable.Map[String,String]] = List(Map(k1 -> v1), Map(k2 -> v2))

scala> list.reduce(_ ++ _)
res1: scala.collection.immutable.Map[String,String] = Map(k1 -> v1, k2 -> v2)
Run Code Online (Sandbox Code Playgroud)

这样您就无需转换为任何中间数据类型。