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

有人可以告诉我中间操作和终端操作有Stream什么区别吗?

Stream操作组合到管道中以处理流。所有操作都是中间操作或终端..means?。

回答:

Stream支持几种操作,这些操作分为intermediateterminal操作。

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

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

filter(Predicate<T>)

map(Function<T>)

flatmap(Function<T>)

sorted(Comparator<T>)

peek(Consumer<T>)

distinct()

limit(long n)

skip(long n)

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

终端操作为:

forEach

forEachOrdered

toArray

reduce

collect

min

max

count

anyMatch

allMatch

noneMatch

findFirst

findAny

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

以上是 中间操作和终端操作有什么区别? 的全部内容, 来源链接: utcz.com/qa/419820.html

回到顶部