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

相关推荐
青春不流名12 小时前
Java List初始化的例子
java·windows·list
HONG````17 小时前
鸿蒙List组件深度使用指南:从数据绑定到极致性能优化
list·harmonyos
geekmice18 小时前
在单线程环境下,同一个 Service 中多个方法需要复用某个 List
数据结构·windows·list
程序员-周李斌2 天前
ArrayList 源码深度分析(基于 JDK 8)
java·开发语言·数据结构·算法·list
程序员-周李斌2 天前
LinkedList 源码深度分析(基于 JDK 8)
java·开发语言·数据结构·list
不带刺仙人球4 天前
list.stream().collect例子
java·list·dubbo
a***13146 天前
redis存取list集合
windows·redis·list
愤怒的山羊6 天前
jetcache List 缓存, json 序列化 泛型解析成了 JsonObject 处理
缓存·json·list
靠沿6 天前
Java数据结构初阶——Collection、List的介绍与ArrayList
java·数据结构·list
leoufung6 天前
LeetCode 61. 旋转链表(Rotate List)题解与思路详解
leetcode·链表·list