java将对象添加到列表中,是否创建了新对象?
假设我们有一个对象并将其添加到ArrayList中。java是创建新对象并将其添加到列表中,还是使用我们传入的同一对象并将其放入arraylist?它使用现有对象,实际上它使用它的引用,引用放在列表中。如果将引用保留在列表之外的另一个变量中,则可以对其进行编辑,并且该值也将在列表内部更改java将对象添加到列表中,是否创建了新对象?,java,arrays,list,Java,Arrays,List,假设我们有一个对象并将其添加到ArrayList中。java是创建新对象并将其添加到列表中,还是使用我们传入的同一对象并将其放入arraylist?它使用现有对象,实际上它使用它的引用,引用放在列表中。如果将引用保留在列表之外的另一个变量中,则可以对其进行编辑,并且该值也将在列表内部更改 public static void main(String[] args) { List<StringBuilder> list = new ArrayList<>();
public static void main(String[] args) {
List<StringBuilder> list = new ArrayList<>();
StringBuilder str1 = new StringBuilder("foo");
StringBuilder str2 = new StringBuilder("bar");
list.add(str1);
list.add(str2);
str1.append(" baz");
System.out.println(str1);
System.out.println(list);
}
这回答了你的问题吗?上帝的问题!它将添加相同的对象,而不是副本。您正在将对该对象的引用添加到列表中。您可以通过创建对象,将其添加到列表中,修改对象,然后检查列表中的对象来测试这一点。
foo baz
[foo baz, bar]