链接列表中的比较器

时间:2013-03-14 21:17:58

标签: java linked-list comparator

我正在编写一个链接列表的程序,试图按顺序插入一些东西,我在我的代码中使用了它,但它一直说它是NullPointerException,我不知道为什么。

 public SortedLinkedList<T> add(T element) {
 Node insert = new Node(element);

然后我检查以确保curr不为空。

if (comparator.compare(curr.data, insert.data) <= 0 
    && comparator.compare(curr.next.data, insert.data) > 0){

2 个答案:

答案 0 :(得分:1)

  

然后我检查以确保curr不为空。

您发布的代码不是检查curr是否为空,它正在进行比较,并且可能尝试对不存在的对象进行比较。

在尝试访问链接列表之前,应检查以确保链接列表中的下一个元素(curr.next)存在。

答案 1 :(得分:1)

我不知道comparator.compare的主体是什么,但是在该方法中没有空检查,你应该做这样的事情。

if (curr != null && curr.data!=null && comparator.compare(curr.data, insert.data) <= 0 
&& comparator.compare(curr.next.data, insert.data) > 0){