Junior
77
questionbank

Как получить коллекцию, которая будет доступна только для чтения?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Использовать статические методы Collections.unmodifiable*() такие как Collections.unmodifiableList(), Collections.unmodifiableSet(), Collections.unmodifiableMap() или Collections.unmodifiableCollection(). Эти методы возвращают обертку над исходной коллекцией, которая генерирует UnsupportedOperationException при попытке модификации.

java

Важно отметить, что неизменяемая коллекция доступна только для чтения поверх существующей коллекции. Если исходная коллекция будет изменена, эти изменения будут видны и через неизменяемую обертку. Для создания полностью независимой неизменяемой копии, нужно сначала скопировать элементы в новую коллекцию, а затем обернуть ее.

Также можно использовать фабричные методы из List.of(), Set.of(), Map.of() (начиная с Java 9) для создания неизменяемых коллекций с предопределенным набором элементов.

java