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

Как можно получить ConcurrentModificationException в однопоточном коде

ConcurrentModificationException может возникнуть в однопоточном коде при изменении коллекции во время итерации по ней, например, через for-each или Iterator. Это происходит из-за fail-fast механизма итераторов. Пример: ```java List list = new ArrayList<>(Arrays.asList("a", "b", "c")); for (String s : list) { if (s.equals("b")) { list.remove("b"); // Выбросит ConcurrentModificationException } } ``` Правильные способы: 1. Использовать Iterator.remove(): ```java Iterator it = list.iterator(); while (it.hasNext()) { if (it.next().equals("b")) { it.remove(); // Безопасное удаление } } ``` 2. Использовать removeIf(): ```java list.removeIf(s -> s.equals("b")); ``` 3. Создать копию коллекции для итерации.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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