junior
Сравните Iterator и ListIterator
ListIterator — это расширение интерфейса Iterator, предназначенное исключительно для списков (List), добавляющее возможность двунаправленного обхода и модификации элементов.
| Возможность | Iterator | ListIterator |
|---|---|---|
| Направление обхода | Только вперед (next()) | Вперед и назад (next(), previous()) |
| Применимость | Любая Collection | Только List |
| Добавление элементов | Нет | add() |
| Замена элементов | Нет | set() |
| Удаление элементов | remove() | remove() |
| Получение индекса | Нет | nextIndex(), previousIndex() |
Текущая позиция ListIterator находится не на элементе, а между элементами. Методы previous() и next() возвращают элемент, через который курсор перешагивает. Получить ListIterator можно через list.listIterator() или list.listIterator(index), где index — начальная позиция курсора.
На собеседовании: назовите ключевые отличия: двунаправленный обход, add(), set() и работу только с List. Упомяните, что позиция ListIterator — между элементами.