当我尝试在LinkedList的节点上放置字符串数组时遇到问题,这是我使用的代码。
public class Node {
public Node next ;
public String[] data;
public Node (Node next ) {
this.next = next ;
this.data = new String[6];
}
}
这是将数组添加到Node
的{{1}}内部的添加函数:
LinkedList
错误:线程“ main”中的异常java.lang.NullPointerException
答案 0 :(得分:0)
需要更改逻辑
Node current = head ;
if(head == null ){
for(int i = 0 ; i<6 ; i++){
head.data[i] = numData[i] ; //here you will get npe beacuse you are using null reference of head
}
}
else
while(current != null){
current = current.next ;
}
for(int i = 0 ; i<6 ; i++){
current.data[i] = numData[i] ;//here you will get npe beacuse you are using null reference of current
}
}
答案 1 :(得分:0)
在您的add方法中,current
在最后一个null
循环中是for
,显然如果head为null
,您也会遇到问题。似乎您想添加新节点时忘记了启动新实例。更改您的方法,如下所示:
public void add()
{
Node current = head ;
if(head == null ){
head = new Node(null); //here you need to initiate head
for(int i = 0 ; i<6 ; i++){
head.data[i] = numData[i] ;
}
}
else {
while(current.next != null){
current = current.next ;
}
Node newNode = new Node(null); //initiating a new node
for(int i = 0 ; i<6 ; i++){
newNode.data[i] = numData[i] ;
}
current.next = newNode;
}
}
我只是假设您想将数据放入新节点中。如果要将数据添加到现有的最后一个节点,只需更改方法的最后一部分。