2017-05-21 18 views
-2

ListIteratorのAPIを読んでいました。リンクされたリストをナビゲート/編集するための多くの機能を提供しています。しかし私の質問は、要素をインデックス化するためにget()メソッドを使うことができるならば、リストを前後にナビゲートするのになぜListIteratorが必要かということです。なぜListIteratorが必要ですか?

+2

インデックスでリンクされたリストの要素にアクセスすることは 'O(n)'操作です。推測すると、 'ListIterator'は、あなたが単純な反復を行っていることを知ってこれを解決する可能性が高いので、次のノード' O(1) 'をフェッチすることができます。 – CollinD

+0

@CollinD応答に感謝します。私は計算の複雑さを考えなかった。よく言った! – computer

答えて

1

同じ理由で、Iteratorとその余分なAPIが必要です。イテレーターは、リスト上で前進して後退する最善の方法を知っています。この場合、あなたよりも良い。 List.get(int index)は、リンクリスト上のO(N)です。リンクを追跡するのはO(1)です。

関連する問題