doublelylinkedlist创建节点

时间:2014-09-28 22:27:40

标签: java class nested private

我正在java中使用泛型类型双向链表进行分配。我确定这是一个基本问题,但由于我找不到答案,我想我会问。本质上,给出了双链表类的实现,我要做的就是创建一些节点。我遇到的问题是节点类是列表类中的私有静态嵌套类,我不明白我应该如何使用它。 list类看起来像这样(省略了几个get和set方法):

public class LinkedList<E> {

    private static class Node<E>{
        private E element;
        private Node<E> previous;
        private Node<E> next;

        public Node(E e, Node<E> p, Node<E> n) {
            element = e;
            prev = p;
            next = n;
       }

    }
}

在我的驱动程序类中,我使用它:

    LinkedList <String> linkedlist = new LinkedList<String>();
    LinkedList.Node node = linkedlist.new Node();

    node n1 = new node("Amy", null, null);

使用这个我得到一个错误,说LinkedList.Node应该更改为默认可见性。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

正如@Lonenebula所提到的,您不想从Node课程之外访问LinkedList课程。

要使用LinkedList,您不必自行创建节点,而只需将元素添加到列表中。 LinkedList类的内部代码将包含有关如何创建新节点的所有必需详细信息。

例如,要向List添加元素,您将拥有add(E e)方法。然后,此方法将包含用于创建节点并将其添加到List的逻辑。在列表类中,您应该已经拥有了下一个和之前的Nodes,或者有逻辑来判断它是第一个还是最后一个Node

您在任何时候都不需要从Node课程外部访问LinkedList课程。