gpt4 book ai didi

java - 创建多级列表的深拷贝?

转载 作者:行者123 更新时间:2023-12-01 22:08:29 26 4
gpt4 key购买 nike

我有:

ArrayList<ArrayList<ArrayList<Task>>> optimalPaths = new ArrayList<ArrayList<ArrayList<Task>>>();

我想创建optimalPaths的深拷贝。副本本身不应包含对 optimizationPaths 的任何引用。下面的代码可以工作吗?

ArrayList<ArrayList<ArrayList<Task>>> altPaths = new ArrayList<ArrayList<ArrayList<Task>>>();

for (ArrayList<ArrayList<Task>> e : optimalPaths){
altPaths.add((ArrayList<ArrayList<Task>>) e.clone()); // Create deep copy of optimalPaths
}

我不确定 altPaths 中是否仍然存在某种程度的引用。

最佳答案

你可以自己做

for (ArrayList<ArrayList<Task>> outer : optimalPaths) {
ArrayList<ArrayList<Task>> newOuter = new ArrayList<>();
for (ArrayList<Task> inner : outer) {
ArrayList<Task> newInner = new ArrayList<>();
for (Task task: inner) {
newInner.add((Task) task.clone());
}
newOuter.add(newInner);
}
altPaths.add(newOuter);
}

关于java - 创建多级列表的深拷贝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58675343/

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