在 Node class 中复制构造函数和克隆方法?

Copy constructor and a clone method in a Node class?

这是我关于 Whosebug 的第一个问题,所以如果我没有正确提问,请告诉我如何更恰当地提问。

我对如何在 Node class 中制作复制构造函数和克隆方法有点困惑。我了解如何为一般对象制作副本和克隆(不实现可克隆),但我在 LinkedLists 方面仍然是新手。

这是我目前为节点 class 编写的部分代码(LinkedList class 的内部 class)

private class Node
{
    private Foo fooObject;
    private Node link;

    public Node()
    {
        fooObject= null;
        link = null;
    }

    public Node(Foo fooObject, Node link )
    {
        this.fooObject = fooObject;
        this.setLink(link);
    }

    public Node(Node originalNode)
    {
        this(originalNode.getCourse(), originalNode.getLink());
    }

    public Node clone()
    {
        return new Node(this);
    }

    public Foo getFoo() 
    {
        return fooObject;
    }

    public void setFoo(Foo fooObject) 
    {
        this.fooObject = fooObject;
    }

    public Node getLink() 
    {
        return link;
    }

    public void setLink(Node link) 
    {
        this.link = link;
    }
}

制作 Node 对象的副本对我来说仍然没有多大意义。当您实际使用 Node 对象时,这不会复制一个已经链接到另一个节点的节点吗?副本和原件将链接到同一个节点,但副本没有链接到它的节点?请帮助我理解,以防我感到困惑,我不明白这将如何使用。

澄清一下,我试图解决的问题是在学校的实验室里被问到的。 "Write a LinkedList class with an inner class... the inner class has a copy constructor and a clone method...make sure your copy constructor and clone method produce deep copies..."

*编辑 只是想澄清一些事情,被要求在 LinkedList class 和内部节点 class 中编写复制构造函数和克隆方法。我百分百确定,我没有时间去问TA澄清,因为问她问题的人太多了! *

谢谢!

看起来您被要求在链表 class... 而不是节点 class.

上实现复制构造函数和克隆方法

当指定进行深拷贝时,克隆的链表对象应该复制原始链表中的所有节点。

我建议你从以下开始:

public MyLinkedList(MyLinkedList originalNode)