2016-11-28 8 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

forループでは、結果ではなく最初に設定しています。正しいコードは次のようになります。

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; 
} 
関連する問題