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

相关推荐
阿洵Rain8 小时前
【C++】哈希
数据结构·c++·算法·list·哈希算法
黎明晓月13 小时前
Java之字符串分割转换List
java·windows·list
slp_13 小时前
java list使用基本操作
java·开发语言·list
大黄瓜de冬天19 小时前
list集合常见去重方式以及效率对比
java·spring boot·list
南城花随雪。2 天前
哈希表(Hash Table)、跳表(Skip List) 和 有序字典(Ordered Dictionary) 的详细介绍
list·哈希算法·散列表
算法与编程之美2 天前
list与iterator的之间的区别,如何用斐波那契数列探索yield
数据结构·list
天狼12223 天前
java8 list map 聚合求和
list·map·q求和
初次见面我叫泰隆4 天前
C++STL——list
开发语言·c++·list
杀神lwz4 天前
Java List根据属性排序
java·python·list
fs哆哆5 天前
C#编程:VSTO在Excel工作表中输出List数据
服务器·windows·c#·list·excel