Встречается на собеседованиях • сегодня
Что произойдет если будешь менять коллекцию во время итерирования
При итерировании коллекции с помощью `Iterator` или `for-each` нельзя изменять её структуру (добавлять/удалять элементы), иначе выбросится `ConcurrentModificationException`. Это защитный механизм для предотвращения недетерминированного поведения.
**Пример:**
```java
List list = new ArrayList<>(List.of("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. Копировать коллекцию перед изменением:
```java
new ArrayList<>(list).forEach(item -> list.remove(item));
```
3. Использовать потокобезопасные коллекции (`ConcurrentHashMap`, `CopyOnWriteArrayList`).

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