ホームページ > Java > &#&チュートリアル > 異なるバージョンの互換性を考慮して、Java で HashMap を効率的に初期化するにはどうすればよいですか?

異なるバージョンの互換性を考慮して、Java で HashMap を効率的に初期化するにはどうすればよいですか?

DDD
リリース: 2024-12-09 08:28:10
オリジナル
666 人が閲覧しました

How Can I Efficiently Initialize HashMaps in Java, Considering Different Version Compatibility?

HashMap の直接初期化: リテラルなアプローチ

背景

HashMap を作成するには、キーと値のペアを手動で追加する必要がある場合があります。このプロセスには時間がかかり、エラーが発生しやすくなります。当然のことながら、開発者はより合理化されたアプローチを求めています。

Java 9 以降

Java 9 以降では、次のファクトリ メソッドによりマップの作成が簡素化されます。

Map.of("a", "b", "c", "d"); // Up to 10 elements
Map.ofEntries(entry("a", "b"), entry("c", "d")); // Any number of elements
ログイン後にコピー

これらのメソッドは不変マップ。変更可能なマップの場合は、それらをコピーします:

Map mutableMap = new HashMap<>(Map.of("a", "b"));
ログイン後にコピー

Java 8 以前

Java 9 より前では、直接初期化することはできません。ただし、代替手段もあります。

匿名サブクラス (注意事項あり)

Map myMap = new HashMap<String, String>() {{
    put("a", "b");
    put("c", "d");
}};
ログイン後にコピー

注意事項:

  • 追加のクラスが導入され、増加します。リソース消費。
  • 外部クラス オブジェクトへの参照を保持し、ガベージ コレクション。

初期化関数

匿名サブクラスの警告を回避する、より堅牢なアプローチ:

Map myMap = createMap();

private static Map<String, String> createMap() {
    Map<String, String> myMap = new HashMap<>();
    myMap.put("a", "b");
    myMap.put("c", "d");
    return myMap;
}
ログイン後にコピー

結論

Java の場合9 では、Map.of や Map.ofEntries などのファクトリ メソッドを使用することで、HashMap を初期化するための最も直接的かつ効率的な方法が提供されます。ただし、Java 8 以前の場合、初期化関数のアプローチは、匿名サブクラスの落とし穴を回避する代替手段を提供します。

以上が異なるバージョンの互換性を考慮して、Java で HashMap を効率的に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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