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
最后五个是短路端子 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)