代码对比
✕ Java 8
Set<String> set =
Collections.unmodifiableSet(
new HashSet<>(
Arrays.asList("a", "b", "c")
)
);
✓ Java 9+
Set<String> set =
Set.of("a", "b", "c");
发现此代码有问题? 告诉我们。
为什么现代方式更好
简洁
一行代码替代三层嵌套调用。
真正不可变
Set 本身不可修改。
null 安全
在创建时拒绝 null 元素。
旧方式
冗长的包装方式
现代方式
Set.of()
自 JDK
9
难度
入门
JDK 支持
创建不可变 Set
可用
自 JDK 9 起广泛可用(2017 年 9 月)
工作原理
Set.of() 创建真正不可变的 Set,拒绝 null 和重复元素。迭代顺序不保证——如果需要顺序,使用 LinkedHashSet 或 List.of()。
相关文档