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

相关推荐
环流_7 小时前
redis中list类型
数据库·redis·list
环流_10 小时前
redis中list应用场景
数据库·redis·list
Languorous.2 天前
C++数据结构高阶|跳表(Skip List)深度解析:从原理到手写实现,面试高频考点全覆盖
数据结构·c++·list
Han_han9192 天前
List系列集合:
数据结构·windows·list
phltxy3 天前
Redis 数据结构之 List 详细解析
数据结构·redis·list
影sir3 天前
STL容器——list类
c++·链表·stl·list
Andy3 天前
C++ list容器基本逻辑结构详解
c++·windows·list
code_whiter3 天前
C++10(list)
c++·windows·list
zhangjw344 天前
第9篇:Java集合框架入门,List详解:ArrayList与LinkedList底层彻底吃透
java·开发语言·list
Brilliantwxx4 天前
【C++】stack_queue与deque模版(模拟实现+认识+对比)
开发语言·c++·笔记·算法·list