Le Javadoc pour ListIterator dit:
A
ListIterator
n'a aucun élément courant; sa position de curseur se situe toujours entre l'élément qui serait retourné par un appel àprevious()
et l'élément qui serait retourné par un appel ànext()
.
Pourquoi Java a-t-il été ListIterator
implémenté pour pointer entre les éléments plutôt que vers un élément actuel? Il semble que ce qui rend le code client moins lisible quand il doit appeler à plusieurs reprises getNext()
, getPrevious()
et je suppose qu'il doit y avoir une bonne raison pour le choix.
Comme une note de côté, je viens d' écrire une petite bibliothèque appelée peekable-arraylist qui se prolonge ArrayList
, Iterator
et ListIterator
qui fournit une peekAtNext()
et peekAtPrevious()
méthodes mises en œuvre comme:
@Override public synchronized T peekAtNext() {
T t = next();
previous();
return t;
}