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