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

相关推荐
kiracrimson1 天前
STL:List的使用和模拟实现
开发语言·c++·list
牧瀬クリスだ2 天前
Redis List实战:从队列到最新列表的高效应用
数据库·redis·list
白山编程大哥3 天前
Java 后端如何优雅地把 List 集合返回给前端
java·前端·list
爱吃火鸡面呀4 天前
Doris 数据划分实战:List 分区、分桶列与桶数选择
数据结构·list
青春不朽5129 天前
Python 的 list append 为什么是均摊 O(1)?拆开过度分配那张表,看容量翻倍背后的暗账
java·python·list
纪念 22910 天前
C++ list讲解
c++·windows·list
闻缺陷则喜何志丹10 天前
vc入门宝典(九)
数据结构·list·mfc·存储·null·class
凉茶钱11 天前
list:哨兵节点,const_iterator 和 const iterator的区别与迭代器失效
数据结构·c++·list
lojox12 天前
C++ 手写 STL list(双向循环链表)原理剖析与实现
c++·链表·list
longlongzihan16 天前
C++ 常用数据结构速查:vector、stack、queue、list、树、图、哈希表等声明与核心操作
数据结构·c++·list