如何克隆(深层复制)java linkedList

时间:2015-03-02 07:19:14

标签: java linked-list clone

我正在实现我的linkList的克隆,它是从库中没有LinkList编写的。 我的代码如下所示:

public class myNode implements Cloneable {

    private class1 obj1;
    private myNode next;
    //---- some immutables....
    public object clone(){
        try {
             myNode cloneNode = super.clone();
        }
        catch (ClassNotSupported ex){
        }
        cloneNode.obj1 = this.obj1.clone();//This is implemented.
        cloneNode.next = this.next.clone();
        return cloneNode;
    }
}

现在我的克隆方法的结果将成为一个stackoverflow。 例如。如果我的myNode linkList看起来像:

  

" AA" - >" BB" - >" CC" - >" DD" - &GT ;"空"

然后,当我在这里未显示的linkList上调用clone时,(在我的测试函数中)然后将linkList的克隆螺旋形成无限循环,看起来像:

  

" AA" - >" BB" - >" AA" - >" BB" - &GT ;" AA" - > .....

我在这里搞砸了什么。有人可以帮忙。

1 个答案:

答案 0 :(得分:0)

您的克隆方法存在问题,您可以简单地将代码编辑为:

public object clone(){
        try {
             myNode cloneNode = (myNode)super.clone();
              cloneNode.obj1= class1.clone();
        }
        catch (ClassNotSupported ex){
        }
        return cloneNode;
    }