Home >Java >javaTutorial >In Java 9, how do we create an immutable Map?

In Java 9, how do we create an immutable Map?

WBOY
WBOYforward
2023-09-06 20:53:02844browse

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

An unmodifiable map means that its keys and valuescannotadd,Deleted map, or updated after creating an unmodifiable map instance. The static factory methods in Map: Map.of() and Map.ofEntries() provide a convenient way to create unmodifiable maps in Java 9>.

Map instances created using the Map.of() and Map.ofEntries() methods have the following characteristics. p>

  • The map returned by the factory method is usually immutable. This means that keys and values cannot be added, deleted, or updated. Calling any mutator method on the map will result in an UnsupportedOperationException.
  • If the map contains keys/values ​​ that are themselves mutable >, it may cause the map to behave inconsistently y or its contents appear to change.
  • Immutable maps do not allow empty keys and values ​​. If an attempt is made to create with a null key or value, a NullPointerException will be thrown.
  • Duplicate keys or values ​​will be rejected at the time of creation itself. Passing duplicate keys to a static factory method results in an IllegalArgumentException.
  • Immutable Map is serializable > if all keys and values ​​are serializable.
  • The iteration order of the map is not specified and may change.

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

Map.of() Example

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>
   }
}

Output

<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() example

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);
   }
}

Output

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

The above is the detailed content of In Java 9, how do we create an immutable Map?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete