English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Каждый раз, когда нужно создать объект, который нельзя изменить после инициализации, можно определить неизменяемый объект. Нет конкретных правил для создания неизменяемых объектов, идея заключается в ограничении доступа к полю класса после инициализации.
Set - это интерфейс в наборе интерфейсов, который не позволяет повторяющиеся значения.
При создании неизменяемого набора данных следует помнить о以下几点:
Мы не должны иметь возможности добавлять или удалять элементы.
Мы не должны добавлять пустые значения в неизменяемый набор данных.
Как только был создан неизменяемый набор данных, к нему нельзя добавить или удалить объект, но можно изменить объекты, хранящиеся в нем.
Метод of() в Java 9 принимает список элементов, создает и возвращает неизменяемый набор данных для данных. Используя этот метод, вы можете создать неизменяемый набор данных с помощью Java.
import java.util.Set; public class ImmutableSet { public static void main(String args[]) { Set<Integer> set = Set.of(1458, 5548, 4587); System.out.println(set); } }
Этот метод принимает объект собрания в качестве параметра и возвращает его неизменяемую форму.
Этот метод вызывается, передавая объект и получая его неизменяемую форму.
В следующем Java-программе мы создаем объект HashSet и пытаемся добавить элементы в него, преобразовав его в неизменяемый объект с помощью метода unmodifiableSet().
Поскольку мы установили его как неизменяемый, будет сгенерирован исключение во время выполнения.
import java.util.Collections; import java.util.HashSet; import java.util.Set; public class ImmutableSet { public static void main(String args[]) { Set<Integer> hashSet = new HashSet<Integer>(); //Заполнение HashSet hashSet.add(1124); hashSet.add(3654); hashSet.add(7854); hashSet.add(9945); System.out.println(hashSet); //Преобразование объекта set в неизменяемый объект Set<Integer> immutable = Collections.unmodifiableSet(hashSet); immutable.add(4466); } }
Результат вывода
[1124, 3654, 9945, 7854] Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Unknown Source) at MyPackage.ImmutableSet.main(ImmutableSet.java:19)