Встречается на собеседованиях • сегодня
Что будет при итерации по коллекции и удалении значений
При итерации по коллекции (например, `ArrayList`) и удалении элементов через `iterator.remove()` — это безопасно. Но если удалять через `Collection.remove()` во время итерации, выбросится `ConcurrentModificationException`.
**Пример:**
```java
List list = new ArrayList<>(List.of("a", "b", "c"));
Iterator it = list.iterator();
while (it.hasNext()) {
String elem = it.next();
if (elem.equals("b")) {
it.remove(); // OK
}
}
// list = [a, c]
```
**Ошибка:**
```java
for (String s : list) {
if (s.equals("b")) {
list.remove(s); // ConcurrentModificationException!
}
}
```
Для `ConcurrentHashMap` и других потокобезопасных коллекций удаление во время итерации безопасно.

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