>  기사  >  Java  >  Java 9에서는 불변 맵을 어떻게 생성합니까?

Java 9에서는 불변 맵을 어떻게 생성합니까?

WBOY
WBOY앞으로
2023-09-06 20:53:02772검색

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

수정 불가능한 지도 는 수정 불가능한 지도 인스턴스가 생성된 후 값 ​​ 추가 , 삭제 또는 업데이트 할 수 없는 지도입니다. Map의 정적 팩토리 메소드: Map.of()Map.ofEntries()는 Java 9에서 수정 불가능한 맵을 생성하는 편리한 방법을 제공합니다.

Map.of()를 사용하세요. Map.ofEntries() 메소드로 생성된 것은 다음과 같은 특징을 가지고 있습니다. p>

  • 팩토리 메서드에서 반환된 맵은 일반적으로 immutable입니다. 이는 값 ​​ 추가 , 삭제 또는 업데이트 할 수 없음을 의미합니다. 지도에서 mutator 메소드를 호출하면 UnsupportedOperationException이 발생합니다.
  • 지도에 자체적으로 변경 가능한 > 키/값 ​​이 포함된 경우 지도가 일관되지 않게 y 작동하거나 콘텐츠가 변경된 것처럼 보일 수 있습니다.
  • 불변 맵은 null 값 ​​을 허용하지 않습니다. null 키나 값을 사용하여 생성하려고 하면 NullPointerException이 발생합니다.
  • 중복된 키나 값은 생성 자체 시 거부됩니다. 정적 팩토리 메소드에 중복 키를 전달하면 IllegalArgumentException이 발생합니다.
  • 불변 map직렬화 가능 > 모든 키와 값이 직렬화 가능한 경우.
  • 지도의 반복 순서는 지정되지 않으며 변경될 수 있습니다.

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>

위 내용은 Java 9에서는 불변 맵을 어떻게 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제