首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >scala将map列表转换为map

scala将map列表转换为map
EN

Stack Overflow用户
提问于 2017-03-09 17:06:11
回答 2查看 11.5K关注 0票数 7

我有一个简单的问题

我有这样的地图列表

代码语言:javascript
复制
List(
      Map("a" -> "a"),
      Map("b" -> "b")
    )

我想要这样的结果

代码语言:javascript
复制
Map(
  "a"->"a",
  "b"->"b"
)

它可以被覆盖,如果密钥重复,任何人请帮助我

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-09 17:10:43

您可以组合使用flattentoMap

代码语言:javascript
复制
val list = List(Map("k1" -> "v1", "k2" -> "v2"))
list.flatten.toMap // Map(k1 -> v1, k2 -> v2)

flatten会将映射列表转换为元组列表,然后toMap会将您的元组列表转换为映射。

票数 11
EN

Stack Overflow用户

发布于 2017-05-10 18:05:35

您可以尝试使用reduce:

代码语言:javascript
复制
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)

这样,您不需要转换为任何中间数据类型。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42691008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档