Использовать статические методы Collections.unmodifiable*() такие как Collections.unmodifiableList(), Collections.unmodifiableSet(), Collections.unmodifiableMap() или Collections.unmodifiableCollection(). Эти методы возвращают обертку над исходной коллекцией, которая генерирует UnsupportedOperationException при попытке модификации.
java
Важно отметить, что неизменяемая коллекция доступна только для чтения поверх существующей коллекции. Если исходная коллекция будет изменена, эти изменения будут видны и через неизменяемую обертку. Для создания полностью независимой неизменяемой копии, нужно сначала скопировать элементы в новую коллекцию, а затем обернуть ее.
Также можно использовать фабричные методы из List.of(), Set.of(), Map.of() (начиная с Java 9) для создания неизменяемых коллекций с предопределенным набором элементов.
java