gpt4 book ai didi

java - 为什么 arraylist 既要清除原始数组又要清除临时数组?

转载 作者:行者123 更新时间:2023-12-02 03:40:58 25 4
gpt4 key购买 nike

我正在使用 arrayList 数据。所以我有 4 个数组列表。我有 3 个数组列表,其中填充了数据之一,用于根据选择临时存储数组列表。我的代码如下。

            if(App.SubPosition==0){
if(custList.size()>0)
custList1=custList;
}
if(App.SubPosition==1){
if(custList.size()>0)
custList2=custList;
}
if(App.SubPosition==2){
if(custList.size()>0)
custList3=custList;
}
App.SubPosition = position;
String json = null;
//custList.clear();
Log.e("Log","custList1="+custList1.size());
Log.e("Log","custList2="+custList2.size());
Log.e("Log","custList3="+custList3.size());
Log.e("Log","custList3="+custList.size());

custList.clear();

Log.e("Log","custList1="+custList1.size());
Log.e("Log","custList2="+custList2.size());
Log.e("Log","custList3="+custList3.size());
Log.e("Log","custList3="+custList.size());

运行上面的代码,它将显示如下日志。

enter image description here

如果我只清除 cuSTList,那么 cuSTList1 arraylist 也会被清除。

为什么会这样?

您的回答将不胜感激

最佳答案

你永远不会有多个列表。您有一个列表和对该列表的多个引用。

您可以使用以下方式创建副本

custList1 = new ArrayList<>(custList);

这会创建一个新的ArrayList实例,并复制数据。

关于java - 为什么 arraylist 既要清除原始数组又要清除临时数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36841373/

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