Iterator - це суперклас ListIterator.
Ось відмінності між ними:
- З
iterator
вами можна рухатись лише вперед, але разом з ListIterator
вами можна рухати і заднім словом, читаючи елементи.
- З
ListIterator
ви можете отримати індекс в будь-який момент під час проходження, яке неможливо з iterator
с.
- За допомогою
iterator
вас можна перевірити лише наявність наступного елемента чи ні, але у listiterator
вас можна перевірити попередній та наступний елементи.
- За допомогою
listiterator
вас можна додати новий елемент у будь-який момент часу під час руху. Неможливо з iterator
.
- За допомогою
listiterator
вас можна змінювати елемент під час руху, що неможливо iterator
.
Вигляд і відчуття ітератора:
public interface Iterator<E> {
boolean hasNext();
E next();
void remove(); //optional-->use only once with next(),
dont use it when u use for:each
}
Вигляд та відчуття ListIterator:
public interface ListIterator<E> extends Iterator<E> {
boolean hasNext();
E next();
boolean hasPrevious();
E previous();
int nextIndex();
int previousIndex();
void remove(); //optional
void set(E e); //optional
void add(E e); //optional
}