Le Javadoc pour ListIterator dit:
A
ListIteratorn'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é ListIteratorimplé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, Iteratoret ListIteratorqui fournit une peekAtNext()et peekAtPrevious()méthodes mises en œuvre comme:
@Override public synchronized T peekAtNext() {
T t = next();
previous();
return t;
}