我只是想知道空列表上Java 8 流的行为。
List<?> emptyList = new ArrayList<>();
List<?> processedList = emptyList.stream().collect(Collectors.toList());
这将是空列表还是null
?
我知道流会进行延迟传播,因此在这种情况下,将调用go转到collect()
方法还是仅将其终止于stream()
method?
collect
是终端操作,因此必须对其进行评估。
当使用终止Stream
管道时collect(Collectors.toList())
,您将始终获得输出List
(永远不会获得null
)。如果a Stream
为空(由于流的源为空,或者由于流的所有元素在终端操作之前被过滤掉了,则List
是否为空也无关紧要),输出也将为空。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句