Java での静的マップの初期化: オプションと考慮事項
静的マップは、クラス内にキーと値のペアを格納する便利な方法を提供します。静的マップの初期化に関して、Java は 2 つの主要なメソッドを提供します。それは、静的イニシャライザーとインスタンス初期化 (匿名サブクラスを使用) です。
静的イニシャライザー
静的例に示すように、initializer 構文を使用すると、マップを定義し、静的ブロック内にその値を設定できます。以下:
private static final Map<Integer, String> myMap = new HashMap<>(); static { myMap.put(1, "one"); myMap.put(2, "two"); }
このメソッドは簡単で、追加のクラスや糖衣構文は必要ありません。ただし、初期化後にマップに加えられた変更は静的バージョンには反映されません。
インスタンス初期化子 (匿名サブクラス)
インスタンス初期化子。一方、匿名サブクラスを使用してマップを初期化します。
private static final Map<Integer, String> myMap2 = new HashMap<>(){ { put(1, "one"); put(2, "two"); } };
このアプローチは次のことを提供します。マップを初期化するためのコンパクトで簡潔な構文。ただし、特に高度にネストされたインスタンスではパフォーマンスに影響を与える可能性がある匿名のサブクラスが作成されます。
考慮事項
private static final Map<Integer, String> myMap = Collections.unmodifiableMap(aMap);
どのメソッドを選択しますか?
次のいずれかの方法を選択します。静的初期化子とインスタンス初期化子は特定の用途に応じて異なりますcase:
以上がJava で静的マップを最適に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。