根据一个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中的对象也复制一下才可以互不干扰。

相关推荐
Emberone7 小时前
C++ list 详解:从入门到模拟实现,彻底搞懂双向链表
c++·list
装杯让你飞起来啊2 天前
Kotlin List / Array 与 for 循环
开发语言·kotlin·list
qq_589568103 天前
springbootweb案例,出现访问 http://localhost:8080/list 一直处于浏览器运转阶段
java·网络协议·http·list·springboot
小则又沐风a4 天前
list模拟实现
java·服务器·list
迷途之人不知返8 天前
List的模拟实现
数据结构·c++·学习·list
AI玫瑰助手8 天前
Python基础:数据类型的转换(int/str/list等互转)
windows·python·list
书源丶8 天前
三十二、Java集合(一)——Collection与List全家桶
java·windows·list
csdn2015_9 天前
Java List 去重
java·windows·list
迷途之人不知返9 天前
List的学习
数据结构·c++·学习·list
苏渡苇9 天前
Redis 核心数据结构(二)——List 与消息队列
数据结构·redis·list·redis发布订阅