unmodifiableList: представление, а не снимок
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] Обёртка запрещает изменение списка через view, но показывает изменения исходного списка. List.copyOf(), доступный с Java 10, создаёт независимый по составу неизменяемый список и не принимает null-элементы. Копия поверхностная: изменяемые объекты внутри неё остаются теми же объектами. При возврате данных из сервиса решите, нужен читателю текущий вид коллекции или снимок на момент вызова. #Java Java Библиотека | Мы в Телеграм