资源描述:
《Java语言程序设计与数据结构 基础篇原书第11版PPT及其他教辅资源30slideStreams.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1Chapter30AggregateOperationsforCollectionStreams2MotivationsDouble[]numbers={2.4,55.6,90.12,26.6};Setset=newHashSet<>(Arrays.asList(numbers));intcount=0;for(doublee:set)if(e>60)count++;System.out.println("Countis"+count);System.out.println("Countis"+set.stre
2、am().filter(e->e>60).count());Thecodeisfine.However,Javaprovidesabetterandsimplerwayforaccomplishingthetask.Usingtheaggregateoperations,youcanrewritethecodeasfollows:3ObjectivesTouseaggregateoperationsoncollectionstreamstosimplifycodingandimproveperformance(§30.1).To
3、createastreampipeline,applylazyintermediatemethods(skip,limit,filter,distinct,sorted,map,andmapToInt),andterminalmethods(count,sum,average,max,min,forEach,findFirst,firstAny,anyMatch,allMatch,noneMatch,andtoArray)onasteam(§30.2).ToprocessprimitivedatavaluesusingtheIn
4、tStream,LongStream,andDoubleStream(§30.3).Tocreateparallelstreamsforfastexecution(§30.4).Toreducetheelementsinastreamintoasingleresultusingthereducemethod(§30.5).Toplacetheelementsinastreamintoamutablecollectionusingthecollectmethod(§30.6).Togrouptheelementsinastream
5、andapplyaggreatemethodsfortheelementsinthegroups(§30.7).Touseavarietyofexamplestodemonstratehowtosimplifycodingusingstreams(§30.8).4StreamAcollectionstreamorsimplystreamisasequenceofelements.Thefilterandcountaretheoperationsthatyoucanapplyonastream.Theseoperationsare
6、knownasaggregateoperations,becausetheyareappliedtoacollectionofdata.5StreamClassAnintermediatemethodtransfromsastreamintoanotherstream.Anterminalmethodperformsanactionandterminatesastream.Astaticmethodcreatesastream.6StreamPipelineAstreampipelineconsistsofastreamcrea
7、tedfromadatasource,zeroormoreintermediatemethods,andafinalterminalmethod.Streamsarelazy,whichmeansthatthecomputationisperformedonlywhentheterminaloperationisinitiated.ThisallowstheJVMtooptimizecomputation.StreamDemoRun7FunctionalInterfaceArgumentsMostoftheargumentsfo
8、rstreammethodsareinstancesoffunctionalinterfaces.Sotheargumentscanbecreatedusinglambdaexpressionsormethodreferences.8forEachMethodT