Junior — Middle
Kako dobiti nepromenljivu listu zasnovanu na postojećem ArrayList-u?
sobes.tech АИ
Одговор од АИ
Чтобы получить неизменяемый (immutable) список на основе существующего ArrayList в Java, можно использовать метод Collections.unmodifiableList(). Этот метод возвращает оболочку над исходным списком, которая не позволяет изменять содержимое через полученный интерфейс.
Пример:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
ArrayList<String> mutableList = new ArrayList<>();
mutableList.add("Элемент 1");
mutableList.add("Элемент 2");
List<String> immutableList = Collections.unmodifiableList(mutableList);
// Попытка изменить immutableList вызовет UnsupportedOperationException
// immutableList.add("Новый элемент"); // Ошибка!
Важно помнить, что если исходный mutableList изменится, то изменения будут видны и в immutableList, так как это только оболочка. Если нужна полная неизменяемость, нужно создать копию списка и обернуть её:
List<String> trulyImmutableList = Collections.unmodifiableList(new ArrayList<>(mutableList));