Sobes.tech
Назад к вопросам
Junior — Middle
63

Каким образом можно создать копию коллекции, чтобы она стала неизменяемой, используя метод clone?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В Java метод clone() используется для создания поверхностной копии объекта. Чтобы сделать коллекцию неизменяемой после клонирования, можно выполнить следующие шаги:

  1. Создать копию коллекции с помощью clone() (если коллекция поддерживает этот метод).
  2. Обернуть полученную копию в неизменяемую оболочку с помощью методов из Collections.

Пример для списка:

import java.util.*;

ArrayList<String> original = new ArrayList<>();
original.add("A");
original.add("B");

// Клонируем
ArrayList<String> cloned = (ArrayList<String>) original.clone();

// Делаем неизменяемым
List<String> unmodifiableList = Collections.unmodifiableList(cloned);

// Теперь unmodifiableList нельзя изменить
// unmodifiableList.add("C"); // выбросит UnsupportedOperationException

Таким образом, clone() создаёт копию, а Collections.unmodifiableXXX() делает её неизменяемой.