添加Stream.toList()方法[Java]

2020-11-04 07:20:15

Stuart Marks Smarks at openjdk.java.net Tue Nov 3 03:18:08 UTC 2020此更改在Stream上引入了新的终端操作。这看起来像是Stream.Collect(Collectors.toList())或Stream.collect(Collectors.toUnmodifiableList()),的一个方便方法,但它不是。将此方法直接放在Stream上使其能够做收集器不容易做的事情。特别值得一提的是,它允许流直接将结果存放到目标数组中(即使是并行的),并将此数组包装在一个不可修改的列表中,而不是复制。过去,我们将集合框架中的大部分内容作为Collector的实现保留,而不是直接在Stream上保存,而只有基本的内容(如toArray)才直接显示在Stream上。大多数收藏品都是如此,但是列表看起来确实很特别。它可以是数组的薄薄包装器;它可以比数组更好地处理泛型;与数组不同,它可以成为不可修改的(浅层不变);它可以是基于值的。参见John Rose在错误报告中的评论:https://bugs.openjdk.java.net/browse/JDK-8180352?focusedCommentId=14133065&;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14133065This操作是空容忍度,这与其余的流匹配。不过,这并未指定;在某些情况下,可能需要使用有关流中NULL处理的一般语句。最后,此方法确实非常方便(如果调用者可以处理此操作返回的内容),因为收集到列表中是最常见的流终端操作。-提交消息:-8180352:add Stream.toList()方法更改:https://git.openjdk.java.net/jdk/pull/1026/files webrev:https://webrevs.openjdk.java.net/?repo=jdk&;pr=1026&;范围=00问题:https://bugs.openjdk.java.net/browse/JDK-8180352统计信息:6个文件中的405行已更改:358INS;23 DEL;24 MOD修补程序:https://git.openjdk.java.net/jdk/pull/1026.diff FETCH:GIT FETCH https://git.openjdk.java.net/jdk Pull/1026/Head:Pull/1026PR:https://git.openjdk.java.net/jdk/pull/1026