Встречается на собеседованиях • сегодня
Что такое 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. Создать копию коллекции для итерации
В многопоточной среде исключение может возникнуть при модификации коллекции одним потоком во время итерации другим.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы