JavaのListIterator
の機能をミラーリングしようとしています。私の頭を包み込むのに苦労しているのは、previous()
メソッドが正常に動作していることだけです。Javaの組み込み反復子をミラーリングするListIteratorの作成
ここに私のものがあります。
public ListIterator300<Item> listIterator() {
return new ListIterator300<Item>() {
private Node<Item> n = first;
public boolean hasNext() {
return n.next != last;
}
public Item next() {
n = n.next;
return n.data;
}
public void remove() {
}
public boolean hasPrevious() {
return n.previous != first;
}
public Item previous() {
n = n.previous;
return n.data;
}
};
}
だから、私はprevious()
とnext()
メソッドを持っているに実行している問題は、その後に呼び出されたときに、同じ番号を返します。今私はListIterator
に組み込まれていることがカーソルを使用することを読んだ。これを私のコードに実装する方法の一般的なヒントはありますか?
[1 2 3 4]
next() -> 1
previous() -> 1
next() -> 1
next() -> 2
@ジョニデータはnullに初期化されます。役に立つと思ったら残りのコードを投稿することができます – 23k
これは誰かの宿題でなければなりません。私はちょうど1日前にこの同じ質問に答えました:http://stackoverflow.com/questions/37403794/correct-implementation-of-list-iterator-methods/37404073#37404073 –
私の注意を引くために@DanielWiddis表記を使用してください。私は一般的なコメントは通常通知されません。 –