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

В чем причина получения ConcurrentModificationException в ArrayList

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

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

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

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