Collections 入门

一次调用创建任何集合的不可变副本。

✕ Java 8
List<String> copy =
    Collections.unmodifiableList(
        new ArrayList<>(original)
    );
✓ Java 10+
List<String> copy =
    List.copyOf(original);
发现此代码有问题? 告诉我们。

智能复制

如果源已经是不可变的,则跳过复制。

🔒

真正不可变

结果集合结构上不可修改。

📏

简洁

一行代码替代多行手动复制和包装。

旧方式
手动复制 + 包装
现代方式
List.copyOf()
自 JDK
10
难度
入门
不可变地复制集合
可用

自 JDK 10 起广泛可用(2018 年 3 月)

List.copyOf()、Set.copyOf() 和 Map.copyOf() 创建不可变快照。如果源集合已经是不可变的,则跳过复制——这一实现细节对调用者透明。

分享 𝕏 🦋 in