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

Что такое ConcurrentModificationException

ConcurrentModificationException возникает при попытке изменить коллекцию во время итерации по ней, кроме как через методы самого итератора. Это fail-fast механизм для защиты от недетерминированного поведения. Пример: ```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. Использовать CopyOnWriteArrayList (для многопоточности) 3. Создать копию коллекции для итерации В многопоточной среде исключение может возникнуть при модификации коллекции одним потоком во время итерации другим.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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