最近在开发的时候看到一个问题 如下:
val recordList2 =new util.ArrayList[util.HashMap[String,String]]
val recordList=new util.ArrayList[Long]()
recordList.add(12L)
for(i <-0 until 11){
recordList.add(i.toLong)
val hmap=new util.HashMap[String,String]
hmap.put("num",i+"")
recordList2.add(hmap)
}
val lastMap=recordList2.last
println(lastMap)
println(recordList2.last)
lastMap.put("num","123456")
println(lastMap)
println(recordList2.last)
var lastValue=recordList.last
println(lastValue)
println(recordList.last)
lastValue=lastValue+1L
println(lastValue)
println(recordList.last)
结果如下:
{num=10}
{num=10}
{num=123456}
{num=123456}
10
10
11
10
recordList 和recordList2 分别调用last方法 赋值给另外一个变量
然后改变变量的值 recordList2 的last值改变了 recordList 不变
recordList2 里面放的是hashmap 存的是地址
recordList里面放的是long 存的是值