ListIteratorのJavadocは次のように述べています。
Aに
ListIterator
は現在の要素がありません。カーソル位置は常に、への呼び出しによって返されるprevious()
要素とへの呼び出しによって返される要素の間にありますnext()
。
Java ListIterator
が現在の要素ではなく要素間を指すように実装されたのはなぜですか?繰り返し呼び出す必要があるとき、これはクライアントコードが読みにくくなりますようだgetNext()
、getPrevious()
私は選択のための正当な理由がなければならないと仮定して、。
注意点として、私はちょうど書いたpeekable-のArrayListと呼ばれる小さなライブラリ拡張ArrayList
、Iterator
およびListIterator
その提供peekAtNext()
とpeekAtPrevious()
同じように実装する方法を:
@Override public synchronized T peekAtNext() {
T t = next();
previous();
return t;
}