Collections.unmodifiableList() запрещает менять список через обёртку. Но это представление исходного списка, а не его независимая копия.var source = new ArrayList<>(List.of("A"));
var view = Collections.unmodifiableList(source);
var snapshot = List.copyOf(source);
source.add("B");
System.out.println(view); // [A, B]
System.out.println(snapshot); // [A]🟡 Если возвращаете наружу текущее состояние коллекции и не хотите, чтобы дальнейшие изменения исходного списка были видны читателю, используйте
List.copyOf() — он доступен с Java 10.Копия поверхностная: сами изменяемые объекты внутри неё не становятся неизменяемыми. И
null-элементы она не принимает.🔗 Источник • Разбор и примеры
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#CoreJava