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

相关推荐
福楠2 天前
C++ STL | list
c语言·开发语言·数据结构·c++·算法·list
福楠2 天前
模拟实现list容器
c语言·开发语言·数据结构·c++·list
小雨青年3 天前
鸿蒙 HarmonyOS 6 | ArkUI (04):数据展示 List 列表容器 LazyForEach 懒加载机制
华为·list·harmonyos
予枫的编程笔记3 天前
【2026.1.5】学习笔记之Java 集合-1
java·开发语言·笔记·学习·list·map·java集合
前端不太难3 天前
RN 列表状态设计 Checklist
react native·list·状态模式
optimistic_chen5 天前
【Redis 系列】常用数据结构---List类型
linux·数据结构·redis·笔记·list·xsheel
企鹅侠客6 天前
第07章—实战应用篇:List命令详解与实战(下)
windows·redis·log4j·list
清水白石0087 天前
《Python 中 deque vs list:性能差异全解析与高效数据结构实战指南》
数据结构·python·list
yuuki2332337 天前
【C++】掌握list:C++链表容器的核心奥秘
c++·后端·链表·list
weixin_425023007 天前
Java开发高频实用技巧汇总(List操作/多线程/反射/监控等)
java·windows·list