РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
432 of 1163 menu

Метод copyOf

Метод copyOf создает и возвращает неизменяемую (immutable) копию переданного множества. В параметр метода мы передаем исходное множество, элементы которого должны быть скопированы в новый набор. Если в качестве параметра передан null, метод возвращает пустое множество. Важно отметить, что если исходное множество впоследствии будет изменено, созданная копия останется неизменной.

Синтаксис

Set.copyOf(collection)

Пример

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

import java.util.Set; import java.util.HashSet; public class Main { public static void main(String[] args) { Set<String> original = new HashSet<>(); original.add("a"); original.add("b"); original.add("c"); Set<String> res = Set.copyOf(original); System.out.println(res); } }

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

[a, b, c]

Пример

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

import java.util.Set; import java.util.HashSet; public class Main { public static void main(String[] args) { Set<Integer> original = new HashSet<>(); original.add(1); original.add(2); original.add(3); Set<Integer> res = Set.copyOf(original); original.add(4); System.out.println("Original: " + original); System.out.println("Copy: " + res); } }

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

Original: [1, 2, 3, 4] Copy: [1, 2, 3]

Пример

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

import java.util.Set; import java.util.HashSet; public class Main { public static void main(String[] args) { Set<String> original = new HashSet<>(); original.add("12345"); Set<String> res = Set.copyOf(original); try { res.add("abcde"); } catch (UnsupportedOperationException e) { System.out.println("Cannot modify copy"); } } }

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

Cannot modify copy

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

  • класс Set,
    который представляет множество
  • метод of,
    который создает неизменяемое множество
  • метод add,
    который добавляет элемент в множество
  • метод contains,
    который проверяет наличие элемента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить