Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
408 of 1172 menu
◀ ▶

Метод copyOf

Метод copyOf класса Map создает новую неизменяемую карту (unmodifiable map), содержащую все те же пары ключ-значение, что и исходная карта. В первый параметр мы передаем исходную карту, которую нужно скопировать. Метод возвращает новый объект, который не позволяет изменять свое содержимое: попытка добавить, удалить или изменить элемент приведет к исключению UnsupportedOperationException. Сама исходная карта при этом не изменяется. Если переданная карта уже является неизменяемой, метод может вернуть её же без создания новой копии.

Синтаксис

Map.copyOf(map)

Пример

Давайте создадим изменяемую карту и получим её неизменяемую копию:

import java.util.Map; import java.util.HashMap; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); Map<String, Integer> res = Map.copyOf(map); System.out.println(res); } }

Результат выполнения кода:

{a=1, b=2, c=3}

Пример

Давайте убедимся, что полученная копия является неизменяемой, и попробуем добавить в неё новый элемент:

import java.util.Map; import java.util.HashMap; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); Map<String, Integer> res = Map.copyOf(map); try { res.put("c", 3); } catch (UnsupportedOperationException e) { System.out.println("Cannot modify copyOf map"); } } }

Результат выполнения кода:

"Cannot modify copyOf map"

Пример

Давайте проверим, что изменения в исходной карте после создания копии не влияют на саму копию:

import java.util.Map; import java.util.HashMap; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); Map<String, Integer> res = Map.copyOf(map); map.put("c", 3); System.out.println("Original: " + map); System.out.println("Copy: " + res); } }

Результат выполнения кода:

"Original: {a=1, b=2, c=3}" "Copy: {a=1, b=2}"

Смотрите также

  • метод of,
    который создает неизменяемую карту из пар
  • метод ofEntries,
    который создает неизменяемую карту из записей
  • метод put,
    который добавляет пару в карту
  • метод entrySet,
    который возвращает множество записей карты
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить