我正在尝试实现一个 LinkedList。这些方法在此示例中运行完美:
LinkedList list = new LinkedList();
Node newNode = new Node("sarah", 20);
list.addToBack(newNode);
System.out.println(list.nodeAt(0).getName());
但在这个例子中,当我尝试对数组使用相同的方法时:
LinkedList[] list = new LinkedList[3];
Node newNode = new Node("sarah", 20);
list[1].addToBack(newNode);
System.out.println(list[1].nodeAt(0).getName());
对于最后一个例子,我得到以下结果:
Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:27)
这是调用 addToBack 方法的行。 方法是这样的:
public void addToBack(Node newNode) throws NullPointerException {
if (this.head == null){
this.head = newNode;
return;
}
Node current = this.head;
while (current.hasNext()){
current = current.next;
}
current.next = newNode;
++size;
}
最佳答案
您没有创建对象。您刚刚创建了一个 LinkedList 数组
LinkedList[] lists = new LinkedList[3]; // Just create the array of linked lists
你必须添加这样的东西
lists[1] = new LinkedList(); // Create the object at index 1 of the array
...
lists[1].addToBack(newNode);
关于java - 从自定义 LinkedList 数组的 addToBack 方法引发 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48693911/