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

Какие ошибки вызывает изменение данных при итерировании

Изменение данных во время итерирования может вызвать `ConcurrentModificationException` при работе с коллекциями. Это происходит, когда коллекция модифицируется (добавление/удаление элементов) во время итерации, кроме как через методы самого итератора. **Пример опасного кода:** ```java List list = new ArrayList<>(Arrays.asList("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)); ``` Для `ConcurrentHashMap` и других потокобезопасных коллекций исключение не возникнет, но могут быть проблемы с согласованностью данных.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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