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