English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Man kann unveränderliche Objekte definieren, wenn ein Objekt erstellt werden soll, das nach der Initialisierung nicht geändert werden kann. Es gibt keine spezifischen Regeln für die Erstellung unveränderlicher Objekte, sondern die Idee ist, den Zugriff auf die Felder der Klasse nach der Initialisierung zu beschränken.
Set ist eine Schnittstelle im Sammlungsrahmen und erlaubt keine wiederholten Werte.
Bei der Erstellung unveränderlicher Sammlungen sollten Sie sich daran erinnern, folgendes zu beachten:
Wir sollten nicht in der Lage sein, Elemente hinzuzufügen oder zu entfernen.
Wir sollten keine leeren Werte in unveränderliche Sammlungen hinzufügen.
Sobald eine unveränderliche Sammlung erstellt wurde, können keine Objekte hinzugefügt oder entfernt werden, aber die in ihr gespeicherten Objekte können geändert werden.
Java9Die of()-Methode akzeptiert eine Liste von Elementen, erstellt und gibt eine unveränderliche Sammlung der angegebenen Elemente zurück. Mit dieser Methode können Sie in Java unveränderliche Sammlungen erstellen.
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); } }
Diese Methode akzeptiert ein Sammlungsobjekt als Parameter und gibt sein unveränderliches, d.h. nicht veränderliches, Form zurück.
Rufen Sie diese Methode auf, indem Sie das erforderliche Objekt übergeben und dessen unveränderliche Form erhalten.
Im folgenden Java-Programm erstellen wir ein HashSet-Objekt und konvertieren es mit der Methode unmodifiableSet() in ein unveränderliches Objekt und versuchen, Elemente hinzuzufügen.
Da wir es als unveränderlich gesetzt haben, wird eine Laufzeitexception generiert.
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 füllen hashSet.add(1124); hashSet.add(3654); hashSet.add(7854); hashSet.add(9945); System.out.println(hashSet); //Set-Objekt in ein unveränderliches Objekt umwandeln Set immutable = Collections.unmodifiableSet(hashSet); immutable.add(4466); } }
Ausgaberesultat
[1124, 3654, 9945, 7854] Exception im Thread "main" java.lang.UnsupportedOperationException bei java.util.Collections$UnmodifiableCollection.add(Unknown Source) bei MyPackage.ImmutableSet.main(ImmutableSet.java:19)