中间 *** 作和终端 *** 作有什么区别?

中间 *** 作和终端 *** 作有什么区别?,第1张

中间 *** 作终端 *** 作有什么区别?

Stream支持几种 *** 作,这些 *** 作分为

intermediate
terminal
*** 作。

此 *** 作之间的区别在于,中间 *** 作是惰性的,而终端 *** 作不是。当您在流上调用中间 *** 作时,该 *** 作不会立即执行。仅在对该流调用终端 *** 作时才执行该命令。在某种程度上,一旦调用了终端 *** 作,便会存储并调用一次中间 *** 作。您可以链接多个中间 *** 作,在调用终端 *** 作之前,它们都不会做任何事情。届时,您先前调用的所有中间 *** 作将与终端 *** 作一起被调用。

所有中间 *** 作都返回Stream(可以链接),而终端 *** 作则不返回。中级业务为:

filter(Predicate<T>)map(Function<T>)flatmap(Function<T>)sorted(Comparator<T>)peek(Consumer<T>)distinct()limit(long n)skip(long n)

终端 *** 作会产生非流(无法链接)结果,例如原始值,集合或根本没有值。

终端 *** 作为:

forEachforEachOrderedtoArrayreducecollectminmaxcountanyMatchallMatchnoneMatchfindFirst    findAny

最后五个是短路端子 *** 作。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5428690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存