Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在比较列表中的字符串时遇到的问题_Java_List_Comparison - Fatal编程技术网

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

Java在比较列表中的字符串时遇到的问题,java,list,comparison,Java,List,Comparison,我正在学习一个中间Java类,在这个类中,我们被指定创建一个字典。用户将输入单词和含义,然后将其添加到列表中 目前,每当一个新词被添加到列表中,它都应该与其他词进行比较,直到找到合适的位置。每当我在第一个单词前面键入一个新词时,它会删除第一个单词并将自己放在那里, 每当我把一个应该放在后面的词放进去,我就会得到一个空点异常。我不知道怎么了 以下是我的代码中给我带来问题的部分: void add(Word w) { WordNode temp = new WordNode(w);

我正在学习一个中间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

}
void添加(单词w)
{
WordNode温度=新WordNode(w);
if(list==null)
列表=临时;
其他的
{
WordNode aux=列表;
WordNode back=null;
布尔值=false;
while(aux!=null&&!找到)
if(临时word.getTitle().compareTo(辅助word.getTitle())<0)
发现=真;
其他的
{
返回=辅助;
aux=aux.next;
}
aux.next=温度;
if(back==null)
列表=临时;
其他的
back.next=温度;
}//世界末日
}
请帮忙

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

将出现nullpointerexception,因为aux为null

您是否尝试在IDE调试器中单步执行代码?这说明了什么?我建议您先启动一个调试器,然后逐步检查代码,看看它在做什么。比较
<0
的结果表明该值不相等。
==0
的结果表示相同。您的代码假定
<0
意味着找到了它。请准备一些预加括号。
aux.next = temp;