Streampeek(Consumeraction)回到由该流的元素所组成的流,并再从结论流中耗费元素时对每一个元素实行附带的实际操作。这是一个正中间实际操作,即它建立了一个新的流,该流在遍历时把包含与给出谓词演算相匹配的原始流的元素。

用法:

Streampeek(ConsumersuperT>action)

Where,StreamisaninterfaceandTisthetypeof

streamelements.actionisanon-interferingaction

toperformontheelementsastheyareconsumed

fromthestreamandthefunctionreturnsthenewstream.

留意:

存有这种方法主要目的是适用调节,你需要在这其中查询元素穿过管道内特殊点的现象。 从Java9逐渐,假如元素的总数事先已经知道而且在流中保持一致,则由于性能调优,将无法实行.peek()句子。能通过命令(宣布)变更元素总数(比如,.filter(x->true)。 在没有任何终端设备实际操作的情形下应用peek不容易实行一切实际操作。

实例1:不用终端设备实际操作就可以查询。

//ImplementationofStream.peek()

//inJava8

importjava.util.*;

classGFG{

//Drivercode

publicstaticvoidmain(String[]args)

{

//CreatingalistofIntegers

Listlist=Arrays.asList(0,2,4,6,8,10);

//Usingpeekwithoutanyterminal

//operationdoesnothing.Hencethis

//codewillproducenooutput.

list.stream().peek(System.out::println);

}

}

导出:

NoOutput

实例2:查询终端设备实际操作记数。

//ImplementationofStream.peek()

//inJava8

importjava.util.*;

classGFG{

//Drivercode

publicstaticvoidmain(String[]args)

{

//CreatingalistofIntegers

Listlist=Arrays.asList(0,2,4,6,8,10);

//Usingpeekwithcount(),which

//isaterminaloperation

list.stream().peek(System.out::println).count();

}

}

导出:

0

2

4

6

8

10

 

Java Stream peek()用法及代码示例插图

发表评论

后才能评论