不変マップの作成
ビルダーなしでインラインに不変マップを作成する。
コード比較
✕ Java 8
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map = Collections.unmodifiableMap(map);
✓ Java 9+
Map<String, Integer> map =
Map.of("a", 1, "b", 2, "c", 3);
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
インライン作成
一時的な変更可能マップは不要です。
不変な結果
作成後にマップは変更できません。
nullキー・値なし
nullエントリは即座に拒否されます。
旧来のアプローチ
マップビルダーパターン
モダンなアプローチ
Map.of()
JDKバージョン
9
難易度
初級
JDKサポート
不変マップの作成
利用可能
JDK 9(2017年9月)以降、広く利用可能
仕組み
Map.of()はキーと値のペアをインラインで受け取り、不変マップを返します。10件を超えるエントリには、Map.entry()ペアと共にMap.ofEntries()を使用します。
関連ドキュメント