Heim >Java >javaLernprogramm >Wie erstellen wir in Java 9 eine unveränderliche Karte?

Wie erstellen wir in Java 9 eine unveränderliche Karte?

WBOY
WBOYnach vorne
2023-09-06 20:53:02821Durchsuche

在Java 9中,我们如何创建一个不可修改的Map?

Eine nicht veränderbare Karte ist eine Karte, deren Schlüssel und Werte nicht hinzugefügt , gelöscht oder aktualisiert werden können, nachdem eine nicht veränderbare Karteninstanz erstellt wurde. Die statischen Factory-Methoden in Map: Map.of() und Map.ofEntries() bieten eine praktische Möglichkeit, nicht veränderbare Karten in Java 9> zu erstellen.

Verwenden Sie Map.of() und The Map Die von der Methode Map.ofEntries() erstellte Instanz weist die folgenden Eigenschaften auf. p>

  • Die von einer Factory-Methode zurückgegebene Karte ist normalerweise unveränderlich. Das bedeutet, dass Schlüssel und Werte nicht hinzugefügt , gelöscht oder aktualisiert werden können. Der Aufruf einer beliebigen Mutatormethode auf der Karte führt zu einer UnsupportedOperationException.
  • Wenn eine Karte Schlüssel/Werte enthält, die selbst veränderlich> sind, kann dies dazu führen, dass sich die Karte inkonsistenty verhält oder dass sich ihr Inhalt scheinbar ändert.
  • Unveränderliche Karten erlauben keine Null--Schlüssel und Werte . Wenn Sie versuchen, mit einem Nullschlüssel oder -wert zu erstellen, wird eine NullPointerException ausgelöst.
  • Doppelte Schlüssel oder Werte werden zum Zeitpunkt der Erstellung selbst abgelehnt. Die Übergabe doppelter Schlüssel an eine statische Factory-Methode führt zu einer IllegalArgumentException.
  • Immutable map ist serialisierbar > wenn alle Schlüssel und Werte serialisierbar sind.
  • Die Iterationsreihenfolge der Karte ist nicht festgelegt und kann sich ändern.

Syntax H2>
<strong>Map.of(k1, v1, k2, v2)
Map.ofEntries(entry(k1, v1), entry(k2, v2),...)</strong>

Map.of() Beispiel

import java.util.Map;
public class UnmodifiableMapTest {
   public static void main(String[] args) {
      Map<String, String> empMap = <strong>Map.of</strong>("101", "Raja", "102", "Adithya", "103", "Jai", "104", "Chaitanya");
      System.out.println("empMap - " + empMap);
      empMap.put("105", "Vamsi");      <strong>// throws UnsupportedOperationException</strong>
   }
}

Ausgabe

<strong>empMap - {104=Chaitanya, 103=Jai, 102=Adithya, 101=Raja}
Exception in thread "main" java.lang.UnsupportedOperationException
         at java.base/java.util.ImmutableCollections.uoe(Unknown Source)
         at java.base/java.util.ImmutableCollections$AbstractImmutableMap.put(Unknown Source)
         at UnmodifiableMapTest.main(UnmodifiableMapTest.java:7)</strong>

Map.ofEntries() Beispiel

import java.util.Map;
import static java.util.Map.entry;
public class UnmodifidMapTest {
   public static void main(String[] args) {
      Map<String, String> empMap = <strong>Map.ofEntries</strong>(entry("101", "Raja"), entry("102", "Adithya"), entry("103", "Jai"), entry("104", "Chaitanya"));
      System.out.println("empMap - " + empMap);
   }
}

Ausgabe

<strong>empMap - {102=Adithya, 101=Raja, 104=Chaitanya, 103=Jai}</strong>

Das obige ist der detaillierte Inhalt vonWie erstellen wir in Java 9 eine unveränderliche Karte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen