我正在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应该更改为默认可见性。任何帮助表示赞赏。
答案 0 :(得分:1)
正如@Lonenebula所提到的,您不想从Node
课程之外访问LinkedList
课程。
要使用LinkedList
,您不必自行创建节点,而只需将元素添加到列表中。 LinkedList
类的内部代码将包含有关如何创建新节点的所有必需详细信息。
例如,要向List添加元素,您将拥有add(E e)
方法。然后,此方法将包含用于创建节点并将其添加到List的逻辑。在列表类中,您应该已经拥有了下一个和之前的Nodes
,或者有逻辑来判断它是第一个还是最后一个Node
。
您在任何时候都不需要从Node
课程外部访问LinkedList
课程。