Встречается на собеседованиях • сегодня

Что произойдет если будешь менять коллекцию во время итерирования

При итерировании коллекции с помощью `Iterator` или `for-each` нельзя изменять её структуру (добавлять/удалять элементы), иначе выбросится `ConcurrentModificationException`. Это защитный механизм для предотвращения недетерминированного поведения. **Пример:** ```java List list = new ArrayList<>(List.of("a", "b", "c")); for (String s : list) { list.remove(s); // Выбросит ConcurrentModificationException } ``` **Как избежать:** 1. Использовать `Iterator.remove()`: ```java Iterator it = list.iterator(); while (it.hasNext()) { it.next(); it.remove(); // Безопасное удаление } ``` 2. Копировать коллекцию перед изменением: ```java new ArrayList<>(list).forEach(item -> list.remove(item)); ``` 3. Использовать потокобезопасные коллекции (`ConcurrentHashMap`, `CopyOnWriteArrayList`).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы