Итераторы обеспечивают безопасный обход коллекций, позволяя корректно модифицировать их во время обхода без нарушения структуры. 4
Для этого итераторы используют метод remove(), который позволяет корректно изменять коллекцию. 4 Он синхронизирует внутренний счётчик изменений с итератором. 4
Кроме того, есть типы итераторов, которые по-разному обрабатывают одновременные модификации коллекции. 1 Например, итераторы Fail-Fast вызывают исключение ConcurrentModificationException, если коллекция изменяется во время итерации. 1 Итераторы Fail-Safe, в свою очередь, делают копию коллекции и перебирают её, что позволяет изменить исходную коллекцию без появления исключения. 1