Встречается на собеседованиях • сегодня
В чем особенность CopyOnWriteArrayList
`CopyOnWriteArrayList` — это потокобезопасная реализация `List` в Java, использующая стратегию "копирования при записи".
**Особенности:**
- **Чтение без блокировок**: операции чтения (`get`, `iterator`) работают с неизменяемым snapshot массива, поэтому не требуют синхронизации.
- **Запись с копированием**: при изменении (`add`, `set`, `remove`) создается новая копия массива, что делает операции записи дорогими.
- **Итераторы не поддерживают `ConcurrentModificationException`**: так как работают с snapshot на момент создания.
**Пример:**
```java
CopyOnWriteArrayList list = new CopyOnWriteArrayList<>();
list.add("Java");
// Итератор видит только элементы на момент своего создания
Iterator it = list.iterator();
list.add("Kotlin");
while (it.hasNext()) {
System.out.println(it.next()); // Выведет только "Java"
}
```
**Использование:** подходит для сценариев с частым чтением и редкими изменениями (например, списки слушателей событий).

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