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