Junior — Middle
Hoe kun je op basis van een bestaande ArrayList een lijst krijgen die niet kan worden gewijzigd?
sobes.tech AI
Antwoord van AI
Чтобы получить неизменяемый (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));