2016-11-28 66 views
0

由於某種原因,我的代碼剛剛卡住了。沒有錯誤沒有。我正在嘗試獲取lastIndexOf對象。 我的代碼:Java鏈接列表lastIndexOf無法正常工作

public int lastIndexOf(Object obj) { 

    Node<E> result = first; 
    int lastIndex = -1; 

    for (int i = 0; result != null; i++, first = result.next) { 
     if (result.equals(obj)) { 
      lastIndex = i; 
     } 
    } 

    return lastIndex; 
    } 

感謝您的任何意見和幫助。

+1

我建議你提供一個[mcve]。 – Gendarme

+1

我認爲問題是'result!= null'。它可能永遠不會成爲'空'(我不明白爲什麼會這樣),所以你的循環會一直循環。 – Gendarme

+0

它是一個循環鏈接列表?這會導致它永遠運行下去 –

回答

2

在你的循環,你第一次,而不是結果。所以正確的代碼應該是這樣的:

public int lastIndexOf(Object obj) { 

    Node<E> result = first; 
    int lastIndex = -1; 

    for (int i = 0; result != null; i++, result = result.next) { 
     if (result.equals(obj)) { 
      lastIndex = i; 
     } 
    } 

    return lastIndex; 
}