最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

StreamAPI多次消費(fèi)一個(gè)stream代碼實(shí)例

 更新時(shí)間:2020年04月01日 09:23:45   作者:JaxYoun  
這篇文章主要介紹了StreamAPI多次消費(fèi)一個(gè)stream代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

StreamAPI中的stream不能被重復(fù)消費(fèi),一旦它被使用,stream就被關(guān)閉了,別的地方再消費(fèi)它就會拋IllegalStateException:stream has already been operated upon or closed。

比如下面的代碼中,stream被消費(fèi)了兩次,第二次消費(fèi)時(shí)將會拋異常:

@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對象,雖然對象是新的,但是每個(gè)stream中的數(shù)據(jù)是相同的,間接地實(shí)現(xiàn)了重復(fù)消費(fèi)的語義:

@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);
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決mybatis 中collection嵌套collection引發(fā)的bug

    解決mybatis 中collection嵌套collection引發(fā)的bug

    這篇文章主要介紹了解決mybatis 中collection嵌套collection引發(fā)的bug,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • kotlin之閉包案例詳解

    kotlin之閉包案例詳解

    這篇文章主要介紹了kotlin之閉包案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java 十大排序算法之計(jì)數(shù)排序刨析

    Java 十大排序算法之計(jì)數(shù)排序刨析

    計(jì)數(shù)排序是一個(gè)非基于比較的排序算法,該算法于1954年由 Harold H. Seward 提出。它的優(yōu)勢在于在對一定范圍內(nèi)的整數(shù)排序時(shí),它的復(fù)雜度為Ο(n+k)(其中k是整數(shù)的范圍),快于任何比較排序算法
    2021-11-11
  • Java基礎(chǔ)-Java的體系結(jié)構(gòu)

    Java基礎(chǔ)-Java的體系結(jié)構(gòu)

    這篇文章主要介紹了Java的體系結(jié)構(gòu),Java幾乎成為了“開源”的代名詞。第三方開源軟件和框架。如Tomcat、Struts,MyBatis,Spring等,下面我們來看看文章具體的內(nèi)容介紹吧
    2022-01-01
  • java中Calendar與Date類型互相轉(zhuǎn)換的方法

    java中Calendar與Date類型互相轉(zhuǎn)換的方法

    這篇文章主要介紹了java中Calendar與Date類型互相轉(zhuǎn)換的方法,Calendar與Date類型是我們?nèi)粘i_發(fā)中常用的兩種數(shù)據(jù)類型,它們用于不同的場景,兩者具有不同的方法,接下來通過實(shí)例給大家詳解,需要的朋友可以參考下
    2022-09-09
  • Spring實(shí)現(xiàn)Logback日志模板設(shè)置動態(tài)參數(shù)功能

    Spring實(shí)現(xiàn)Logback日志模板設(shè)置動態(tài)參數(shù)功能

    本文介紹如何在Spring應(yīng)用中實(shí)現(xiàn)Logback日志模板的動態(tài)參數(shù)設(shè)置,通過設(shè)計(jì)traceId鏈路標(biāo)識,將其動態(tài)添加到日志輸出中,從而實(shí)現(xiàn)簡易的鏈路追蹤功能,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Java三元表達(dá)式使用及注意事項(xiàng)詳解

    Java三元表達(dá)式使用及注意事項(xiàng)詳解

    這篇文章主要介紹了Java三元表達(dá)式使用及注意事項(xiàng)的相關(guān)資料,Java中的三元運(yùn)算符是一種簡潔的條件語句,它可以根據(jù)一個(gè)條件來選擇兩個(gè)不同的值中的一個(gè),適用于簡單的條件賦值場景,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • 對ArrayList和LinkedList底層實(shí)現(xiàn)原理詳解

    對ArrayList和LinkedList底層實(shí)現(xiàn)原理詳解

    今天小編就為大家分享一篇對ArrayList和LinkedList底層實(shí)現(xiàn)原理詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Java對int[]數(shù)組做新增刪除去重操作代碼

    Java對int[]數(shù)組做新增刪除去重操作代碼

    這篇文章主要介紹了Java里面對int[]數(shù)組做新增刪除去重實(shí)現(xiàn),這里記錄下使用int[]數(shù)組對數(shù)組進(jìn)行新增刪除去重等操作,用來更加了解java里面的集合類思想,需要的朋友可以參考下
    2023-10-10
  • 淺談為什么要使用mybatis的@param

    淺談為什么要使用mybatis的@param

    這篇文章主要介紹了淺談為什么要使用mybatis的@param,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論

浙江省| 侯马市| 德昌县| 年辖:市辖区| 宜黄县| 定州市| 喀什市| 武穴市| 根河市| 晴隆县| 咸丰县| 鸡泽县| 依兰县| 普陀区| 安远县| 晋中市| 康乐县| 彩票| 金山区| 尼木县| 宁蒗| 洛隆县| 桐柏县| 扶沟县| 英超| 平江县| 五家渠市| 韩城市| 工布江达县| 京山县| 楚雄市| 崇礼县| 安乡县| 蕲春县| 浦东新区| 浙江省| 启东市| 漾濞| 涪陵区| 平乡县| 和田县|