Встречается на собеседованиях • сегодня
Сталкивался ли с ConcurrentModificationException
Да, это исключение возникает при изменении коллекции во время итерации по ней (например, через `for-each` или `Iterator`), кроме случаев использования методов самого итератора (`remove()`).
**Пример проблемы:**
```java
List list = new ArrayList<>(Arrays.asList("a", "b", "c"));
for (String s : list) {
if (s.equals("b")) {
list.remove(s); // Выбросит ConcurrentModificationException
}
}
```
**Решение:**
1. Использовать `Iterator.remove()`:
```java
Iterator it = list.iterator();
while (it.hasNext()) {
if (it.next().equals("b")) {
it.remove(); // Безопасно
}
}
```
2. Использовать потокобезопасные коллекции (`ConcurrentHashMap`, `CopyOnWriteArrayList`).
3. Создать копию коллекции для итерации.
Особенно актуально в многопоточной среде, где изменение может произойти из другого потока.

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