使用链表的学生数据库



问题是实现一个带有链表的OrderedList的StudentDatabase类。学生数据库包含每个学生的姓名、学生 ID 和年份。您应该包括一个显示类,该显示类按学生编号顺序打印数据库中的学生。这是我的学生班:

这是我的添加方法:

这也是我的驱动程序:

您没有正确处理空列表的情况。在这种情况下,current = head已经null,当你尝试查看(null)节点的next字段时,你会得到一个NPE。您需要检查是否head == null,如果是,请在列表前面插入新项目。

此外,您的add方法在逻辑上存在错误;它总是在列表的末尾插入一个项目。您需要在将项目插入正确的位置时进行比较。

发布你的日志以了解你在哪里得到 NullPointerException,可能在 while 循环检查而不是 current.getNext(),尝试当前!=null 如下所示,

while(current!= null){
        current = current.getNext();
        current.setNext(newItems);
}

您获得 NPE 的原因是head的值是 null 。您需要更改代码以在那里进行检查以查看是否是这种情况。

像这样:

// method declaration
LinearNode newItems = new LinearNode(head, items);
if (head == null) {
    head = newItems;
    return;
}
...
// the rest of the method

> chrylis 是对的,这与 head 可能为空有关。您说问题出在第 70 行,这涉及current.setPrev(newItems);我认为您需要实现头部在 setPrev() 中为空的检查,并像这样add()

if (head==null){
head=newItems;
return;
}

add() 返回true也是一个好主意,因为这就是 java 在其其他一些列表中实现其他一些add()方法的方式,例如 ArrayList<>

相关内容

  • 没有找到相关文章

最新更新