gpt4 book ai didi

java - 如果修改重复列表,则初始列表 gettign 被修改

转载 作者:行者123 更新时间:2023-12-01 23:01:14 25 4
gpt4 key购买 nike

我的问题是我有一个名为currentComponents的初始列表。我正在将其项目复制到另一个名为 currentMonitorComponents 的新列表中。但是,当 currentMonitorComponents 中的组件自动修改时,currentComponents 列表中的项目也会被修改。我的代码是这样的 ---

 List<MonitorComponent> currentMonitorComponents = new ArrayList<MonitorComponent>();
currentMonitorComponents.addAll(currentComponents);

最佳答案

您必须对列表进行深层复制:

 ArrayList<MonitorComponent> currentComponentsClone = new ArrayList<MonitorComponent>();
for(MonitorComponent m : currentMonitorComponents)
currentComponentsClone.add(m.clone());

并在您的类中实现clone方法:

public class MonitorComponent{

String s;
Date d;
...

public MonitorComponent clone(){
MonitorComponent m = new MonitorComponent();
m.s = this.s.clone();
m.d = this.d.clone();
...
return m;
}
}

关于java - 如果修改重复列表,则初始列表 gettign 被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23357297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com