不変セットの作成
単一のファクトリ呼び出しで不変セットを作成する。
コード比較
✕ Java 8
Set<String> set =
Collections.unmodifiableSet(
new HashSet<>(
Arrays.asList("a", "b", "c")
)
);
✓ Java 9+
Set<String> set =
Set.of("a", "b", "c");
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
簡潔
3つのネストした呼び出しの代わりに1行で済みます。
重複検出
誤って重複要素を渡すと例外をスローします。
不変
作成後に追加・削除はできません。
旧来のアプローチ
冗長なラッピング
モダンなアプローチ
Set.of()
JDKバージョン
9
難易度
初級
JDKサポート
不変セットの作成
利用可能
JDK 9(2017年9月)以降、広く利用可能
仕組み
Set.of()はnullと重複要素を作成時に拒否する真の不変セットを作成します。変更可能なセットをラッピングする必要はもうありません。
関連ドキュメント