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

Каким образом можно получить список, который нельзя изменить, на основе существующего ArrayList?

Компании, где спрашивали
Т-БанкТ-Банк

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

sobes.tech 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));