В Java ты можешь сделать Collection доступной только для чтения, обернув её подходящим методом утилиты Collections. Это предотвращает любые изменения исходной коллекции, но при этом позволяет читать данные.
Java предоставляет четыре основных метода для создания неизменяемых представлений коллекций:
Collections.unmodifiableMap(Map m) - для MapCollections.unmodifiableList(List l) - для ListCollections.unmodifiableSet(Set s) - для SetCollections.unmodifiableCollection(Collection c) - для обычной CollectionЭти методы возвращают обёртку вокруг исходной коллекции, которая:
UnsupportedOperationException при попытке измененияList<String> originalList = new ArrayList<>();
originalList.add("Item1");
originalList.add("Item2");
List<String> readOnlyList = Collections.unmodifiableList(originalList);
// Операции чтения работают нормально
System.out.println(readOnlyList.get(0)); // Успех
// Попытки изменения не пройдут
readOnlyList.add("Item3"); // Выбросит UnsupportedOperationException
List.copyOf(), Set.copyOf() или Map.copyOf() (Java 10+)Метод Collections.unmodifiableList() создает настоящую неизменяемую копию исходного списка, поэтому изменения исходного списка не будут отражены в неизменяемом представлении.
Новый — ещё не проверен сообществом
Вы