Встречается на собеседованиях • сегодня
Как избежать 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);
```
Основная причина исключения - изменение коллекции во время итерации не через итератор. Выбирайте подход в зависимости от контекста.

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