Встречается на собеседованиях • сегодня
Что происходит с итерированием во время добавления в CopyOnWriteArrayList
При итерировании `CopyOnWriteArrayList` создается "снимок" (snapshot) текущего состояния списка. Даже если список изменяется (добавляются/удаляются элементы) во время итерации, итератор продолжает работать с исходным снимком, поэтому `ConcurrentModificationException` не возникает.
**Пример:**
```java
CopyOnWriteArrayList list = new CopyOnWriteArrayList<>(List.of("A", "B"));
Iterator it = list.iterator();
list.add("C"); // Изменение списка после создания итератора
while (it.hasNext()) {
System.out.print(it.next() + " "); // Выведет "A B" (старый снимок)
}
System.out.println(list); // Выведет "[A, B, C]" (актуальное состояние)
```
**Особенности:**
- Итератор не отражает последующие изменения.
- Изменения списка создают новую копию массива, что может влиять на производительность.
- Подходит для редких изменений и частого чтения (read-heavy).

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