Junior — Middle
Как можете да създадете копие на колекцията, за да стане неизменяема, използвайки метода clone?
sobes.tech AI
Отговор от AI
В Java метод clone() используется для создания поверхностной копии объекта. Чтобы сделать коллекцию неизменяемой после клонирования, можно выполнить следующие шаги:
- Создать копию коллекции с помощью
clone()(если коллекция поддерживает этот метод). - Обернуть полученную копию в неизменяемую оболочку с помощью методов из
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() делает её неизменяемой.