這篇文章主要介紹StreamAPI中多次消費(fèi)一個(gè)stream的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司,為您提供重慶網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站營(yíng)銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對(duì)服務(wù)玻璃鋼雕塑等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!
StreamAPI中的stream不能被重復(fù)消費(fèi),一旦它被使用,stream就被關(guān)閉了,別的地方再消費(fèi)它就會(huì)拋IllegalStateException:stream has already been operated upon or closed。
比如下面的代碼中,stream被消費(fèi)了兩次,第二次消費(fèi)時(shí)將會(huì)拋異常:
@Test public void statistics() { IntStream range = IntStream.range(0, 12); OptionalInt min = range.min(); //第一次消費(fèi)正常 System.out.println(min); long count = range.count(); //第二次消費(fèi)將報(bào)錯(cuò) System.out.println(count); }
如何實(shí)在需要多次消費(fèi)呢,通過Supplier來生產(chǎn)stream,每次調(diào)用supplier.get()獲取一個(gè)嶄新的stream對(duì)象,雖然對(duì)象是新的,但是每個(gè)stream中的數(shù)據(jù)是相同的,間接地實(shí)現(xiàn)了重復(fù)消費(fèi)的語(yǔ)義:
@Test public void statistics0() { Supplier<IntStream> supplier= () -> IntStream.range(0, 12); OptionalInt min = supplier.get().min(); //第一次消費(fèi)正常 System.out.println(min); long count = supplier.get().count(); //第二次消費(fèi)正常 System.out.println(count); }
以上是“StreamAPI中多次消費(fèi)一個(gè)stream的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前標(biāo)題:StreamAPI中多次消費(fèi)一個(gè)stream的示例分析
標(biāo)題路徑:http://www.rwnh.cn/article46/gopceg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、電子商務(wù)、營(yíng)銷型網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、面包屑導(dǎo)航、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)