繁体   English   中英

在Java中将相同的对象添加到列表

[英]Adding the same object to List in Java

为什么当我将相同的对象添加到列表中时:

Integer a = new Integer(0);
testList.add(a);
a += 1;
testList.add(a);

第一个没有改变吗?

因为Integer是不可变的。 修改a引用的值时,您将创建一个新对象并更新对该对象的引用。 testList包含对两个对象的引用。

由于Integer包装器类在Java中是不可变的。 不仅Integer ,所有包装器类和String都是不可变的。

a是指向对象的参考。 当您运行a += 1 ,它将重新分配a来引用具有不同值的新Integer对象。

您从未修改原始对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM