Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9で変更不可能なマップを作成するにはどうすればよいですか?


変更できない地図 キーのキー および 追加することはできません 、削除 、または更新 マップの変更不可能なインスタンスが作成されたら。静的ファクトリメソッド: Map.of() およびMap.ofEntries() Java 9で変更不可能なマップを作成する便利な方法を提供するMapから 。

Map.of()を使用して作成されたマップのインスタンス およびMap.ofEntries() メソッドには次の特徴があります。

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

構文

Map.of(k1, v1, k2, v2)
Map.ofEntries(entry(k1, v1), entry(k2, v2),...)

Map.of()の例

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

出力

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)


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 = Map.ofEntries(entry("101", "Raja"), entry("102", "Adithya"), entry("103", "Jai"), entry("104", "Chaitanya"));
      System.out.println("empMap - " + empMap);
   }
}

出力

empMap - {102=Adithya, 101=Raja, 104=Chaitanya, 103=Jai}

  1. JavaでJToggleButtonを実装するにはどうすればよいですか?

    JToggleButton JToggleButton AbstractButtonの拡張です また、オンに切り替えることができるボタンを表すために使用できます。 およびオフ 。 JToggleButtonの場合 を初めて押すと、押したままになり、2回押すと離すことができます。 JToggleButton ActionEventを生成します 押すたびに。 JToggleButton ItemEventを生成することもできます 、このイベントは、選択の概念をサポートするコンポーネントによって使用されます。 JToggleButtonの場合 を押すと選択されます。

  2. Javaでログインフォームを作成するにはどうすればよいですか?

    Javaを使用してJavaでログインフォームを開発できます スイング テクノロジー。この例では、2つのラベルユーザー名を作成できます。 およびパスワード 、ユーザーが入力する2つのテキストフィールド有効 クレデンシャル 最後に1つの送信ボタン。ユーザーが2つのテキストフィールドに有効なクレデンシャルを入力できるようになると、こんにちはが表示されます。 管理者 ログインフォームで。 例 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LoginDemo extends JFrame im