Gymterview
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 — между элементами.