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

相关推荐
你真是饿了1 天前
10.list
c++·list
爱喝一杯白开水3 天前
Java List 常用方法全攻略
java·list·排序算法
易雪寒4 天前
Java List 根据List中对象的属性值是否相同作为同一组,分割成多个连续的子List
java·数据结构·list·分组切割
无限进步_6 天前
深入解析list:一个完整的C++双向链表实现
开发语言·c++·git·链表·github·list·visual studio
爱玩亚索的程序员6 天前
算法入门(一)Python基础(list、dict、set、tuple、for、enumerate、lambda、sorted)
python·算法·list
小王不爱笑1326 天前
Java List 集合全面解析:ArrayList、LinkedList 与 Vector 的深度对比
java·windows·list
咖啡の猫8 天前
Redis命令-List命令
windows·redis·list
zhangx1234_8 天前
java list介绍
java·开发语言·list
健康平安的活着8 天前
java8案例对list[过滤、分组,转换,查找等]清洗逻辑
java·数据结构·list
永远睡不够的入9 天前
C++list详解
c++·windows·list