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

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

WBOY
Release: 2023-09-06 20:53:02
forward
807 people have browsed it

在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>
Copy after login

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>
   }
}
Copy after login

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>
Copy after login

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);
   }
}
Copy after login

Output

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

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!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template