ホームページ > Java > &#&チュートリアル > Java で静的マップを最適に初期化するにはどうすればよいですか?

Java で静的マップを最適に初期化するにはどうすればよいですか?

DDD
リリース: 2024-12-06 15:48:22
オリジナル
475 人が閲覧しました

How to Best Initialize Static Maps in Java?

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

このアプローチは次のことを提供します。マップを初期化するためのコンパクトで簡潔な構文。ただし、特に高度にネストされたインスタンスではパフォーマンスに影響を与える可能性がある匿名のサブクラスが作成されます。

考慮事項

  • インスタンス初期化オプションは、次の理由から慎重に使用する必要があります。
  • どちらの方法でも、デフォルトで変更可能なマップが作成されます。不変マップを作成するには、Java の Collections.unmodifiableMap() メソッドを使用できます。
private static final Map<Integer, String> myMap = Collections.unmodifiableMap(aMap);
ログイン後にコピー

どのメソッドを選択しますか?

次のいずれかの方法を選択します。静的初期化子とインスタンス初期化子は特定の用途に応じて異なりますcase:

  • 簡単で効率的な初期化には、静的イニシャライザが推奨されます。
  • パフォーマンスが懸念される非常に大規模または複雑なマップの場合は、静的イニシャライザが推奨されます。
  • 不変性が必要な場合は、Collections.unmodifiableMap() を使用した静的初期化子を使用できます。使用済み。

以上がJava で静的マップを最適に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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