2012-01-28 21 views
6

可能重複:
How can I convert immutable.Map to mutable.Map in Scala?不變地圖的內容複製到新的可變地圖

如何創建與斯卡拉不可改變地圖的內容可變的新地圖?

到目前爲止,我曾嘗試:

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

無濟於事。

+1

@TomaszNurkiewicz - 哈,我忘了我已經回答了這一個。 – 2012-01-28 22:30:16

回答

21
val im = Map(1->1.0, 2->3.0) 
val mm = collection.mutable.Map[Int,Double]() ++= im 
+1

爲什麼'++ ='而不是'++'? – 2012-01-29 00:44:52

+4

'++'創建另一個集合,而'++ ='添加到您擁有的集合。考慮到收藏是可變的,後者浪費較少。 – 2012-01-29 11:59:44

7
val immM = Map(1 -> 2) 
val mutM = collection.mutable.Map(immM.toSeq: _*)