Встречается на собеседованиях • сегодня
Как работает CopyOnWriteArrayList
`CopyOnWriteArrayList` — это потокобезопасная реализация `List`, которая создает новую копию массива при каждой модификации (добавление, удаление, изменение элементов). Это позволяет читающим потокам работать с неизменяемым массивом, избегая блокировок.
**Особенности:**
- Чтение без блокировок (высокая производительность для частых операций чтения).
- Модификации (`add`, `set`, `remove`) дорогие из-за копирования массива.
- Итераторы работают с моментальным снимком данных на момент создания и не бросают `ConcurrentModificationException`.
**Пример:**
```java
CopyOnWriteArrayList list = new CopyOnWriteArrayList<>();
list.add("Java"); // Создается копия массива
// Чтение без блокировки
for (String s : list) {
System.out.println(s); // Итератор использует копию
}
// Потокобезопасное изменение
list.add("Kotlin"); // Новая копия создается
```
**Используйте**, когда чтение значительно чаще модификаций (например, кэши, слушатели событий).

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