第一个数组列表:- ArrayList<Object> list1;
第二个数组列表:- ArrayList<Object> list2;
假设我填了list1
与一些物体。
现在我从 list1
复制一些对象使用list2.add(list1[i])
并更改 list2
中的对象使用list2[j].setA = something
.
list1中对象对应的值A是否会改变?
实际上我想要值 A
待更改。
最佳答案
它会改变。列表仅包含对对象*的引用。因此,将 list1
中的一些元素添加到 list2
后,两个列表将共享对相同物理对象的引用。
*在 Java 集合中,您无法存储原始类型,例如 int
,只能存储它们的对象对应项(在本例中为 Integer
),且始终通过引用存储。
关于java - 我可以使用另一个 ArrayList 中的引用来更改一个 ArrayList 中的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7062899/