gpt4 book ai didi

java - 为什么当新变量改变时,原来的变量也会改变?

转载 作者:行者123 更新时间:2023-12-01 06:51:18 24 4
gpt4 key购买 nike

我有以下代码块:

ArrayList<Integer> list1 = new ArrayList<Integer>();
ArrayList<Integer> list2 = list1;
// both list1 and list2 are empty arraylists
System.out.println(list1.size()); // prints: 0
list2.add(7);
System.out.println(list1.size()); // prints: 1

为什么当我修改list2时,list1也被修改了?这导致我的程序中发生 ConcurrentModificationException。如何在不更改 list1 的情况下编辑 list2?

最佳答案

list1list2 是您设置为引用同一对象的两个不同引用。

如果您想要两个具有相同内容的不同列表,您可以复制一份:

ArrayList<Integer> list1 = new ArrayList<Integer>();
ArrayList<Integer> list2 = new ArrayList<Integer>(list1);

关于java - 为什么当新变量改变时,原来的变量也会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26855918/

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