Scala将值分配给Map of Map

时间:2019-11-18 22:13:27

标签: scala dictionary

考虑var myMap = Map[String,Map[String,Map[String,String]]]()

1)我试图如下所示向此变量添加条目,但未成功:myMap = myMap + ("a" -> ("b1" -> ("c" -> "d", "e" -> "f")))我该如何解决?

2)假设我们完成了上面的步骤1,如何在结构中的某处添加另一个子图;说myMap = myMap + ("a" -> ("b2" -> ("g" -> "h")))

最终结果应类似于以下结构:

a:{
   b1:{
       c:d, 
       e:f
      },
   b2:{
       g:h
      }  
   }

1 个答案:

答案 0 :(得分:4)

使用可变集合而不是可变变量会更容易。

import collection.mutable.Map
val myMap = Map[String,Map[String,Map[String,String]]]()

myMap.update("a", Map("b1" -> Map("c" -> "d", "e" -> "f")))
myMap("a").update("b2", Map("g" -> "h"))
//Map(a -> Map(b2 -> Map(g -> h), b1 -> Map(c -> d, e -> f)))