2

私は自分で作成したカスタムのジェネリックな単一のLinkedListを持っています。リストに追加、削除などをうまく行うことができます。クラスにJavaListIteratorを実装したいと思います。これをどのように始めればよいですか?クラスに追加する必要があるメソッドは何ですか?私がWebで見つけることができるのは、デフォルトのJava LinkedListでListIteratorを使用する例だけですが、これは私には良くありません。ありがとう!

4

5 に答える 5

1

IteratorまたはListIteratorインターフェースを実装する必要があります。

于 2011-04-27T15:01:30.173 に答える
1

ListIteratorインターフェースのすべての機能を実装する2番目のクラス(通常はリンクリストのネストされたクラス)を作成します。一部の関数(addおよびなどremove)はオプションであることに注意してください。UnsupportedOperationExceptionをスローするだけです。リンクリストクラスは、メソッドを実装し、2番目のクラスのインスタンスを返す必要がlistIterator()ありlistIterator(int)ます。

于 2011-04-27T15:05:19.200 に答える
0

単一リンクリストのListIterator場合、両方向にナビゲートする必要があるため、実装には注意が必要です(不可能ではないにしても)。これは、頭から何度も再起動することによってのみ実装できます。

リストを二重リンクにするかUnsupportedOperationException、多くのメソッドを使用する必要があります。(または、半分の方法でO(n)のパフォーマンスを維持します)

于 2011-04-27T15:11:04.040 に答える
0

ListIteratorが持っているメソッドを探します。あなたはそれのあなたのバージョンがそれらの同じメソッドを持っていることを確認する必要があるでしょう。

可能であれば、InterfaceListIteratorが使用するものを探し、そのインターフェイスを実装します。

于 2011-04-27T15:01:35.803 に答える
0

ListIteratorパフォーマンスのために、リストを反復処理するときに、リストの「逆方向」バージョンを実装して保持することができます。これは二重にリンクされたリストをエミュレートしますが、イテレータのみです。

ただし、リンクリストを二重リンクリストとして実装する方がおそらく安全です。

于 2011-04-27T15:31:48.513 に答える