Collections 中级

使用 stream.toList() 直接收集到不可修改列表。

✕ Java 8
List<String> list = stream.collect(
    Collectors.collectingAndThen(
        Collectors.toList(),
        Collections::unmodifiableList
    )
);
✓ Java 16+
List<String> list = stream.toList();
发现此代码有问题? 告诉我们。
📏

最简洁

stream.toList() 完全不需要 collect() 或 Collectors 导入。

🔒

真正不可变

结果列表在结构上不可修改。

🧹

更少导入

无需导入 java.util.stream.Collectors。

旧方式
collectingAndThen
现代方式
stream.toList()
自 JDK
16
难度
中级
不可修改收集器
可用

自 JDK 16 起广泛可用(2021 年 3 月)

Java 10 添加了 toUnmodifiableList()、toUnmodifiableSet() 和 toUnmodifiableMap()。Java 16 的 stream.toList() 更进一步,完全不需要 collect() 或 Collectors 导入。

分享 𝕏 🦋 in