【发布时间】:2020-04-21 14:44:56
【问题描述】:
我在为我的链表创建 sort() 方法时遇到问题。 这是我在 Item 类中的 Comparable 实现。
public class Item implements Comparable <Item>{
public Date delivered;
public final String RFIDNR;
public String name;
}
public int compareTo(Item other)
{
return name.compareTo(other.getItemName());
}
这是我的链表类中的排序方法
public void sort()
{
Node node = header.next;
Node tempNode = null;
boolean sorted = false;
while (!sorted)
{
sorted = true;
while (node != null)
{
if (node.itm.compareTo(node.next.itm) > 0) throw new NullPointerException();
{
tempNode = node.next;
node.next = node;
node = tempNode;
sorted = false;
}
node = node.next;
}
}
}
我在这里尝试做的是更改非升序元素的位置并切换它们。遍历整个列表,直到 sorted = true。 我遇到了 NullPointerException 错误。 非常感谢任何帮助。
【问题讨论】:
-
您的代码中有
if (...) throw new NullPointerException();。 if 下面的块无论如何都会被执行,如果这个节点的项目大于下一个节点的项目,你会抛出 NullPointerException