【发布时间】:2015-04-12 00:08:50
【问题描述】:
我想合并嵌套地图,但不知道如何合并内部地图。
var a = Map[String,Map[String,String]]()
a = a + ("key1" -> Map("subkey1" -> "a"))
a = a + ("key1" -> Map("subkey2" -> "b"))
a = a + ("key2" -> Map("subkey1" -> "c"))
我想合并所有这些以获得以下结果:
Map("key1" -> Map("subkey1" -> "a", "subkey2" -> "b"), "key2" -> Map("subkey1" -> "c"))
这有什么标准方法吗?
【问题讨论】:
-
如果子映射中的key发生冲突怎么办?就像
key1映射下的两个subkey1。 -
@m-z 理想情况下,碰撞可以由 2-arity 函数处理。在我的情况下,签名更像是 Map[String,Map[String,Seq[String]]],然后将这些值组合在一起。