java-链接列表中的NullPointerException查找字符 公共类LString{ char data;//存储在此节点中的字符 LString next;//链接到下一个LString节点 公共LString(char newdata){ 数据=新数据; } 公共LString(char newdata,LString newnext){ 数据=新数据; next=newnext; } 公共电话号码(){ } //创建列表的前端 环前; //创建列表的长度 整数长度; /*构造一个LString对象。LString对象将表示 与原始字符相同的字符列表。也就是说,新创建的LString是 原始参数的“副本”*/ 公共LString(原始字符串){ LString curr=前端; 对于(int i=0;i
下面的代码应该将字符串“hi”放入字符的链接列表中,其中hi的每个字母都是列表的一个节点。运行时,它给出一个nullpointerexception,指向curr.data=original.charAt(i);。为什么会出现空指针异常?感谢您在您的循环中:java-链接列表中的NullPointerException查找字符 公共类LString{ char data;//存储在此节点中的字符 LString next;//链接到下一个LString节点 公共LString(char newdata){ 数据=新数据; } 公共LString(char newdata,LString newnext){ 数据=新数据; next=newnext; } 公共电话号码(){ } //创建列表的前端 环前; //创建列表的长度 整数长度; /*构造一个LString对象。LString对象将表示 与原始字符相同的字符列表。也就是说,新创建的LString是 原始参数的“副本”*/ 公共LString(原始字符串){ LString curr=前端; 对于(int i=0;i,java,nullpointerexception,linked-list,Java,Nullpointerexception,Linked List,下面的代码应该将字符串“hi”放入字符的链接列表中,其中hi的每个字母都是列表的一个节点。运行时,它给出一个nullpointerexception,指向curr.data=original.charAt(i);。为什么会出现空指针异常?感谢您在您的循环中: public class LString{ char data; //chars stored in this node LString next; //link to next LString node
public class LString{
char data; //chars stored in this node
LString next; //link to next LString node
public LString(char newdata){
data = newdata;
}
public LString(char newdata, LString newnext){
data = newdata;
next = newnext;
}
public LString(){
}
//create a front of list
LString front;
//create length of list
int length;
/*Construct an LString object. The LString object will represent the
same list of chars as original. That is, the newly created LString is a
"copy" of the parameter original.*/
public LString(String original){
LString curr = front;
for(int i = 0; i < original.length(); i++){
curr.data = original.charAt(i);
curr = curr.next;
length++;
}
}
}
public class test{
public static void main(String[] args){
LString myList = new LString("hi");
}
}
你有没有主驱动程序的例子,展示你是如何使用这个类的?我没有看到任何地方初始化
front
?但您将其分配给LString curr
,因此它将为空。因此,将LString-front
更改为LString-front=new-LString()代码>
public LString(String original){
LString curr = front;
for(int i = 0; i < original.length(); i++){
curr.data = original.charAt(i);
curr = curr.next;
length++;
}
public LString(String original){
LString curr = null;
for(int i = 0; i < original.length(); i++){
char ch = original.charAt(i);
if(i == 0){
front = new LString(ch);
curr = front;
}
else{
curr.next = new LString(ch);
curr = curr.next;
}
length++;
}
}