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

Как избежать ConcurrentModificationException

Чтобы избежать `ConcurrentModificationException`, нужно правильно работать с коллекциями во время итерации. Основные способы: 1. **Использовать `Iterator.remove()`** при удалении элементов во время итерации: ```java Iterator iterator = list.iterator(); while (iterator.hasNext()) { String item = iterator.next(); if (condition) { iterator.remove(); // Безопасное удаление } } ``` 2. **Копировать коллекцию** перед модификацией: ```java List copy = new ArrayList<>(originalList); for (String item : copy) { if (condition) { originalList.remove(item); } } ``` 3. **Использовать `ConcurrentHashMap`/`CopyOnWriteArrayList`** для потокобезопасных операций. 4. **Java 8+ Stream API** для фильтрации: ```java list.removeIf(item -> condition); ``` Основная причина исключения - изменение коллекции во время итерации не через итератор. Выбирайте подход в зависимости от контекста.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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