【发布时间】:2021-05-04 06:49:55
【问题描述】:
JDK 16 now includes a toList() method directly on Stream instances。在以前的 Java 版本中,您始终必须使用 collect 方法并提供 Collector 实例。
新方法显然更少输入字符。这两种方法是否可以互换,还是应该注意一些细微的差别?
var newList = someCollection.stream()
.map(x -> mapX(x))
.filter(x -> filterX(x))
.toList();
// vs.
var oldList = someCollection.stream()
.map(x -> mapX(x))
.filter(x -> filterX(x))
.collect(Collectors.toList());
(这个问题类似于Would Stream.toList() perform better than Collectors.toList(),但关注的是行为而不是(仅)性能。)
【问题讨论】:
标签: java java-stream collectors java-16