ホームページ > Java > &#&チュートリアル > Java 9 では、不変の Map をどのように作成するのでしょうか?

Java 9 では、不変の Map をどのように作成するのでしょうか?

WBOY
リリース: 2023-09-06 20:53:02
転載
782 人が閲覧しました

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

変更不可能なマップは、その keysvaluesadd できないことを意味します、# #変更不可能なマップ インスタンスを作成した後、#削除されたマップ、または updated。 Map の静的ファクトリー メソッド: Map.of() および Map.ofEntries() は、Java 9 で変更不可能なマップを作成する便利な方法を提供します>.

Map

Map.of() メソッドと Map.ofEntries() メソッドを使用して作成されたインスタンスには、次の特性があります。 p>

    ファクトリ メソッドによって返されるマップは通常、
  • immutable です。これは、keysvaluesaddeddeleted、または updated にすることはできないことを意味します。マップ上でミューテーター メソッドを呼び出すと、UnsupportedOperationException が発生します。
  • マップに
  • キー/値 が含まれており、それ自体 変更可能 > である場合、マップの動作が 一貫性を失う可能性があります y またはその内容が変化しているように見えます。
  • 不変マップでは、
  • 空の キー および は許可されません。 null のキーまたは値を使用して作成しようとすると、NullPointerException がスローされます。
  • 重複するキーまたは値は、作成自体の時点で拒否されます。重複したキーを静的ファクトリ メソッドに渡すと、IllegalArgumentException が発生します。
  • Immutable Map serializable > すべてのキーと値がシリアル化可能である場合。
  • マップ
  • の反復順序は指定されていない ため、変更される可能性があります。
構文

<strong>Map.of(k1, v1, k2, v2)
Map.ofEntries(entry(k1, v1), entry(k2, v2),...)</strong>
ログイン後にコピー
Map.of() 例

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>
   }
}
ログイン後にコピー

出力

<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() の例

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);
   }
}
ログイン後にコピー

出力

<strong>empMap - {102=Adithya, 101=Raja, 104=Chaitanya, 103=Jai}</strong>
ログイン後にコピー

以上がJava 9 では、不変の Map をどのように作成するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート