我需要一个进行深度复制的方法..它作为参数ArrayList<Arraylist<Integer>>m
并深入复制到另一个收集ArrayLists的ArrayList ......
一切都需要深层复制。但没有循环只能递归...
有人可以帮我怎么做吗?
答案 0 :(得分:1)
我认为以下代码满足您的约束条件并且与您想要实现的类似:
public ArrayList<ArrayList<Integer>> deepCopy(ArrayList<ArrayList<Integer>> list) {
ArrayList<ArrayList<Integer>> ret = new ArrayList<ArrayList<Integer>>();
deepCopy(list.iterator, ret);
return ret;
}
private void deepCopy(Iterator<ArrayList<Integer>> it, ArrayList<ArrayList<Integer>> ret) {
if (it.hasNext()) {
ret.add(new ArrayList(it.next()));
deepCopy(it, ret);
}
}
它只是访问列表并以递归方式创建新列表。
对于整数而言,没有有趣的用例......这是这个功课吗?