Sobes.tech
Junior — Middle

Millised on nimekirja tüüpi kogumite rakendamise viisid, mis tagavad nende elementide läbimisel sisekopimise?

sobes.tech AI

Vastus AI-lt

В Java существует коллекция типа список, которая обеспечивает внутреннее копирование при обходе элементов — это CopyOnWriteArrayList из пакета java.util.concurrent.

Особенности CopyOnWriteArrayList:

  • При каждой операции изменения (добавление, удаление) создаётся новая копия внутреннего массива.
  • Итераторы этой коллекции работают по неизменяемому снимку данных, что позволяет безопасно обходить элементы без ConcurrentModificationException.
  • Подходит для сценариев с частыми чтениями и редкими изменениями.

Пример использования:

import java.util.concurrent.CopyOnWriteArrayList;

CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
list.add("one");
list.add("two");

for (String item : list) {
    System.out.println(item);
    // Можно безопасно изменять список во время обхода
    list.add("three");
}

Таким образом, CopyOnWriteArrayList — это основной пример списка с внутренним копированием при обходе элементов.