Collections 初級

1回の呼び出しでコレクションの不変コピーを作成する。

✕ Java 8
List<String> copy =
    Collections.unmodifiableList(
        new ArrayList<>(original)
    );
✓ Java 10+
List<String> copy =
    List.copyOf(original);
このコードに問題がありますか? お知らせください。

スマートコピー

ソースがすでに不変の場合はコピーをスキップします。

📏

1回の呼び出し

ArrayListの手動構築+ラッピングは不要です。

🛡️

防御的コピー

元のコレクションへの変更はコピーに影響しません。

旧来のアプローチ
手動コピー+ラッピング
モダンなアプローチ
List.copyOf()
JDKバージョン
10
難易度
初級
コレクションの不変コピー
利用可能

JDK 10(2018年3月)以降、広く利用可能

List.copyOf()、Set.copyOf()、Map.copyOf()は既存のコレクションの不変スナップショットを作成します。ソースがすでに不変コレクションである場合、コピーは作成されません。

共有 𝕏 🦋 in