代码对比
✕ Java 8
List<String> result = stream
.filter(s -> s.length() > 3)
.collect(Collectors.toList());
✓ Java 16+
List<String> result = stream
.filter(s -> s.length() > 3)
.toList();
发现此代码有问题? 告诉我们。
为什么现代方式更好
7 个字符 vs 24 个
.toList() 替代 .collect(Collectors.toList())。
不可变
结果列表不可修改。
流畅
在管道末尾读起来自然。
旧方式
Collectors.toList()
现代方式
.toList()
自 JDK
16
难度
入门
JDK 支持
Stream.toList()
可用
自 JDK 16 起广泛可用(2021 年 3 月)
工作原理
Stream.toList() 返回不可修改的列表。它等效于 .collect(Collectors.toUnmodifiableList()) 但更简短。注意:结果是不可变的,与 Collectors.toList() 不同。
相关文档