有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java在比较列表中的字符串时遇到的问题

我正在学习一个中间的Java类,我们被分配去创建一个字典。用户将输入单词和含义,然后将其添加到列表中

目前,每当一个新词被添加到列表中,它都应该与其他词进行比较,直到找到合适的位置。每当我在第一个单词之前输入一个新词,它就会删除第一个单词,并将自己放在那里, 每当我在后面加上一个单词,我就会得到一个空点异常。我不确定怎么了

以下是我的代码中给我带来问题的部分:

    void add(Word w)
{
    WordNode temp = new WordNode(w);


    if (list == null)
        list = temp;

    else
    {
        WordNode aux = list;
                    WordNode back = null;
                    boolean found = false;
        while(aux != null && !found)
        if (temp.word.getTitle().compareTo(aux.word.getTitle()) < 0) 
                        found = true;
                    else
                    {
                        back = aux;
                        aux = aux.next;
                    }
                    aux.next = temp;
                    if (back == null)
                        list = temp;
                    else
                        back.next = temp;

    }// End of the else

}

请帮忙


共 (1) 个答案

  1. # 1 楼答案

    while(aux != null && !found)
        if (temp.word.getTitle().compareTo(aux.word.getTitle()) < 0) 
                        found = true;
                    else
                    {
                        back = aux;
                        aux = aux.next;
                    }
    

    当aux为null时退出while循环时,下一行

    aux.next = temp;
    

    会有nullpointerexception,因为aux为null