为什么 Kotlin 中 hashMap 的变量没有固有的值?
Why variable of hashMap in Kotlin doesn't inherent the value?
这是一个hashMap
变量:
val ordinaryYear = hashMapOf(Pair("January", 31), Pair("February", 28), Pair("March", 31),
Pair("April", 31), Pair("May", 31), Pair("June", 30), Pair("Jule", 31), Pair("August", 31),
Pair("September", 30), Pair("October", 31), Pair("November", 30), Pair("December", 31))
我为闰年创建了新的二月。
var leapYear = ordinaryYear
leapYear["February"] = 2999999
println(leapYear["February"])
println(ordinaryYear["February"])
如果我们 println()
两个变量我们可以看到相同的结果 - 2999999
- leapYear
和 ordinaryYear
!
我们可以看到,为 February
添加新值改变了先前变量中 February
的值。如何在不改变原点的情况下创建新的 hashMap
变量?
提前致谢。
你可以通过
实现
val leapYear = hashMapOf<String,Int>()
leapYear.putAll(ordinaryYear)
在此处查看示例:
https://pl.kotl.in/ehj24XiX3
这是一个hashMap
变量:
val ordinaryYear = hashMapOf(Pair("January", 31), Pair("February", 28), Pair("March", 31),
Pair("April", 31), Pair("May", 31), Pair("June", 30), Pair("Jule", 31), Pair("August", 31),
Pair("September", 30), Pair("October", 31), Pair("November", 30), Pair("December", 31))
我为闰年创建了新的二月。
var leapYear = ordinaryYear
leapYear["February"] = 2999999
println(leapYear["February"])
println(ordinaryYear["February"])
如果我们 println()
两个变量我们可以看到相同的结果 - 2999999
- leapYear
和 ordinaryYear
!
我们可以看到,为 February
添加新值改变了先前变量中 February
的值。如何在不改变原点的情况下创建新的 hashMap
变量?
提前致谢。
你可以通过
实现 val leapYear = hashMapOf<String,Int>()
leapYear.putAll(ordinaryYear)
在此处查看示例: https://pl.kotl.in/ehj24XiX3