2016-04-18 19 views
1

私はIteratorメソッド(public Iterator iterator(boolean fromFront))を持つクラスを持っていて、私のIteratorメソッドは "new DoublyLinkedListIterator()"を返します。 DoublyLinkedListIteratorは、setメソッドを含むListIteratorを実装します。この問題は、私のイテレータがsetメソッドへのアクセス権を持たない私の主な問題です。イテレータiterator = deque.iterator(true); hasPreviousメソッドまたはpreviousメソッドにアクセスすることもできません。イテレータに実装されている機能がありません

+4

コードもご記入ください。 –

+0

正しいメソッドを呼び出していると確信できる場合は、返されたイテレータを特定のDoublyLinkedListIteratorにキャストできます – AdamSkywalker

+0

また、あなたの質問は何ですか? – Nico

答えて

0

反復子を公開するための標準的な方法は、標準Listクラスのように、自分のクラスにpublic <T> ListIterator<T> listIterator()メソッドを持つことですサポートListIterator s。変数名はサンプルコードから取得され、カスタムタイプがあります。

1

あなたはDoublyLinkedListIteratorのメソッドへのアクセス権を持っているしたい場合は、代わりにイテレータの復帰それに持っています。 (または使用する前にキャストを作成する)。

How to make a cast(必要な場合)

-2

イテレータを使用したいが、前方/後方をナビゲートしてリンクの順序を変更したい場合は、リストの構造を変更するすべての書き込み操作が短くなるように、を間違って実行していると、が間違っている。

このようなニーズがある場合は、while/do-whileループに進みます。組み込みDeque<T>クラスにはないことを

ListIterator literator = deque.listIterator(); 

注:としてそれを使用できるように

関連する問題