收集ArrayLists的ArrayList的深层副本

时间:2014-02-02 23:32:34

标签: java recursion arraylist deep-copy

我需要一个进行深度复制的方法..它作为参数ArrayList<Arraylist<Integer>>m 并深入复制到另一个收集ArrayLists的ArrayList ...... 一切都需要深层复制。但没有循环只能递归...

有人可以帮我怎么做吗?

1 个答案:

答案 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);
    }
}

它只是访问列表并以递归方式创建新列表。

对于整数而言,没有有趣的用例......这是这个功课吗?