gpt4 book ai didi

java - 将对象添加到 ArrayList 并稍后对其进行修改

转载 作者:IT老高 更新时间:2023-10-28 13:52:37 25 4
gpt4 key购买 nike

如果我有一个 ArrayList,我在其中添加了一个对象,然后我修改了这个对象,这种变化会反射(reflect)在 ArrayList 中吗?或者当我将对象添加到 ArrayList 时,Java 会创建一个副本并将其添加到 ArrayList?

如果我将此对象的引用更改为 null 怎么办?这是否意味着 ArrayList 中的对象现在也为空?

最佳答案

will this change reflect in the ArrayList?

是的,因为您向列表中的对象添加了 reference。您添加的引用仍将指向同一个对象(您已修改)。


or when I add the object to the ArrayList, Java creates a copy and add it to the ArrayList?

不,它不会复制对象。 (它将复制对对象的引用。)


What if I change the reference to this object to null? Does that mean that the object in the ArrayList now null too?

不,因为原始引用的内容在添加到列表时被复制。 (请记住,被复制的是 reference,而不是对象。)

演示:

StringBuffer sb = new StringBuffer("foo");

List<StringBuffer> list = new ArrayList<StringBuffer>();
list.add(sb);

System.out.println(list); // prints [foo]
sb.append("bar");

System.out.println(list); // prints [foobar]

sb = null;

System.out.println(list); // still prints [foobar]

关于java - 将对象添加到 ArrayList 并稍后对其进行修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7080546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com