Javadoc для ListIterator каже:
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;
}