创建多级列表的深层副本?

问题描述 投票:0回答:2

我有:

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

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

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
}

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

java deep-copy
2个回答
0
投票

您可以自己做


0
投票

如果Task类没有要复制的任何临时字段,则可以通过序列化和反序列化使用复制:

© www.soinside.com 2019 - 2024. All rights reserved.