在LinkedList中搜索元素时的NPE

时间:2015-05-08 09:00:39

标签: java nullpointerexception linked-list

我在LinkedList中搜索一个元素,当元素确实在列表中时,输出是正确的。但是,测试相反的情况,当搜索Null或元素不在列表中时,NPE会发生。请帮忙,谢谢!

public boolean find(E e){
    Node current=head;
    while(current.item !=null){
        if(e.equals(current.item)){
            System.out.println("True");
            return true;
        }
        current=current.next;
    }
    System.out.println("False");
    return false;
}

2 个答案:

答案 0 :(得分:2)

while语句应为while(current !=null)

答案 1 :(得分:1)

可能需要在while循环中更改条件:

public boolean find(E e){
    Node current=head;
    while(current != null){
        if( (current.item != null) && (e.equals(current.item)){
            System.out.println("True");
            return true;
        }
        current=current.next;
    }
    System.out.println("False");
    return false;
}

同时检查节点中的项目是否不是null