将不可变映射的内容复制到新的可变映射

dav*_*ave 6 scala

可能重复:
如何在Scala中将immutable.Map转换为mutable.Map?

如何使用Scala中不可变映射的内容创建新的可变映射?

到目前为止,我尝试过:

val m:scala.collection.mutable.Map[Int, Double] = scala.collection.mutable.Map[Int, Double](imm.map({case(key, value) => (key -> value) }))
Run Code Online (Sandbox Code Playgroud)

无济于事.

Rex*_*err 23

val im = Map(1->1.0, 2->3.0)
val mm = collection.mutable.Map[Int,Double]() ++= im
Run Code Online (Sandbox Code Playgroud)

  • `++`创建另一个集合,而`++ =`添加到你已经获得的集合.鉴于该集合是可变的,后者不那么浪费. (4认同)
  • 为什么`++ =`而不是'++`? (2认同)

Bla*_*ade 8

val immM = Map(1 -> 2)
val mutM = collection.mutable.Map(immM.toSeq: _*)
Run Code Online (Sandbox Code Playgroud)