我有一个使用可变[1,2,3,4,5,6,7,8,9]
的示例。 HashMap.withDefaultValue
提供了一种即使密钥不存在也能返回值的方法,但它不应修改集合。在任何情况下,都存在冲突的行为,因为withDefaultValues
返回0,同时map.size
返回一个值。
这怎么可能?
map(key)
答案 0 :(得分:2)
可以将defaultValue
分解出来,因为它是作为值传递的。
import scala.collection.mutable
val defaultValue = mutable.HashMap[Int, String]()
val map = mutable.HashMap[String, mutable.Map[Int, String]]()
.withDefaultValue(defaultValue)
map("id1")(2) = "three"
哪个给你
println(defaultValue) // Map(2 -> three)
......应该解释其余的行为。这正是我推荐不可变数据结构的原因; - )