根据一个List生成另外一个List,修改其中一个,导致另外一个List也在变化

1、两个List复制

SysDic aSysDic = new SysDic();

aSysDic.setDkey("1");

aSysDic.setDnote("12");

SysDic bSysDic = new SysDic();

bSysDic.setDkey("2");

bSysDic.setDnote("23");

SysDic cSysDic = new SysDic();

cSysDic.setDkey("3");

cSysDic.setDnote("34");

List<SysDic> asList = new ArrayList<>();

asList.add(aSysDic);

asList.add(bSysDic);

asList.add(cSysDic);

List<SysDic> bsList = new ArrayList<>(asList);

for (SysDic dic : bsList) {

dic.setDkey(dic.getDnote());

}

System.out.println(asList);

System.out.println(bsList);

System.out.println(asList.size());

System.out.println(bsList.size());

结果:

第一个对象和第二个对象完全相同,dkey都被改变了

2、可以看出来,1个List已经通过new关键字,重新生成了一个,但是List中包含的SysDic对象是相同的,你修改其中一个,另外一个也会发生变化。所以即使复制了List也无济于事,需要将List中的对象也复制一下才可以互不干扰。

相关推荐
小手cool25 分钟前
List反转的方法
list
见未见过的风景2 天前
将三个list往一个excel表的三个sheet中写入,能用多线程提高写入速度
数据结构·list·excel
殇淋狱陌2 天前
第四章 列表(List)&元组(Tuple)以及代码格式基础语法及操作
数据结构·python·数据分析·list·元组
殇淋狱陌3 天前
第三章 列表(List)语法讲解
数据结构·python·学习·数据分析·list
CURRY30_HJH3 天前
List直接使用removeAll报错
windows·python·list
寒冰的暖4 天前
【C#】List求并集、交集、差集
c#·list
time_silence4 天前
List;Set;Map集合
数据结构·list
梦幻通灵4 天前
Java字符串的|分隔符转List实现方案
java·windows·list
小娄写码4 天前
JAVA集合-LIST 及源码解析
java·开发语言·list
越甲八千5 天前
深入理解STL list erase
开发语言·c++·list