2013-11-27 30 views
-2

我正在分配一箇中間Java類來創建字典。用戶將輸入單詞和含義,然後它將被添加到列表比較列表中的字符串的Java問題

當前每當一個新單詞被添加到列表中時,它應該與其他單詞進行比較,直到它找到它的適當位置。每當我在第一個單詞之前輸入一個新單詞時,它會刪除第一個單詞並將其放到那裏,只要我在出現NullPointerException之後放置一個單詞,就會發生這種情況。我不知道什麼是錯的

繼承人我的代碼的一部分是給我的問題:

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 

} 

請幫助!

+0

您是否嘗試過通過代碼加強在IDE調試器?這是什麼告訴你的? –

+1

我建議你先啓動一個調試器,然後瀏覽你的代碼,看看它在做什麼。 –

+1

'<0'的比較結果表示該值不是**相等。 '== 0'的結果表明它是相同的。您的代碼假定「<0」表示找到它。並請獲得一些intendation +括號。 –

回答

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

當它退出while循環當AUX爲空,下一行

aux.next = temp; 

將有一個NullPointerException因爲AUX是空