Java util collections unmodifiablemap

Неизменяемая карта в Java

В этом посте будут обсуждаться различные методы создания немодифицируемой карты в Java.

Неизменяемые карты являются оболочками “только для чтения” над другими коллекциями. Они не поддерживают никаких операций модификации, таких как добавление, удаление и очистка, но их базовую коллекцию можно изменить. Карты, которые дополнительно гарантируют, что никакие изменения в объекте Collection никогда не будут видны, называются неизменяемыми.

Обратите внимание, что окончательная версия карты не сделает ее неизменяемой. Мы по-прежнему можем добавлять элементы или удалять из него элементы. Окончательной является только ссылка на карту.

1. Использование Collections.unmodifiableMap() метод

Collections unmodifiableMap() Метод возвращает неизменяемый вид указанной карты “только для чтения”. Он берет другую карту и заключает ее в класс, который отклоняет запросы на модификацию, таким образом создавая неизменяемый вид на исходную карту. Любая попытка изменить возвращенную карту напрямую или через ее итератор приведет к UnsupportedOperationException .

Тем не менее, он не создаст неизменяемую карту. Владение ссылкой на основную коллекцию по-прежнему допускает модификацию, т. е. любые изменения, внесенные в исходную карту, будут отражены в немодифицируемой карте. Кроме того, каждая оболочка является дополнительным объектом, требующим другого уровня косвенности и потребляющим больше памяти, чем исходная коллекция. Наконец, обернутая коллекция по-прежнему несет расходы на поддержку изменений, даже если она никогда не предназначена для изменения.

Источник

Читайте также:  Функция count в java
Оцените статью