代码对比
✕ 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);
发现此代码有问题? 告诉我们。
为什么现代方式更好
内联创建
无需临时可变 Map。
真正不可变
Map 本身不可修改,不只是视图。
null 安全
键和值均拒绝 null,快速失败。
旧方式
Map 构建器模式
现代方式
Map.of()
自 JDK
9
难度
入门
JDK 支持
创建不可变 Map
可用
自 JDK 9 起广泛可用(2017 年 9 月)
工作原理
Map.of() 内联接受键值对并返回不可变 Map。Map.ofEntries() 处理超过 10 个条目的情况。旧方式需要可变的临时 Map 和 Collections.unmodifiableMap()。
相关文档