1. Java8 中一個(gè)極其強(qiáng)悍的新特性,很多人沒用過(非常實(shí)用)

        共 1308字,需瀏覽 3分鐘

         ·

        2021-02-19 09:26

        不點(diǎn)藍(lán)字,我們哪來故事?

        每天 11 點(diǎn)更新文章,餓了點(diǎn)外賣,點(diǎn)擊 ??《無門檻外賣優(yōu)惠券,每天免費(fèi)領(lǐng)!》

        • 一、Stream是什么
        • 二、Stream語法講解
          • 1、前提準(zhǔn)備
          • 2、創(chuàng)建一個(gè)Stream
          • 3、使用Stream操作數(shù)據(jù)
          • 4、終止Stream

        Java8中有兩個(gè)非常有名的改進(jìn),一個(gè)是Lambda表達(dá)式,一個(gè)是Stream。如果我們了解過函數(shù)式編程的話,都知道Stream真正把函數(shù)式編程的風(fēng)格引入到了java中。這篇文章由簡入繁逐步介紹Stream。

        一、Stream是什么

        從名字來看,Stream就是一個(gè)流,他的主要作用就是對集合數(shù)據(jù)進(jìn)行查找過濾等操作。有點(diǎn)類似于SQL的數(shù)據(jù)庫操作。一句話來解釋就是一種高效且易用的數(shù)據(jù)處理方式。大數(shù)據(jù)領(lǐng)域也有一個(gè)Steam實(shí)時(shí)流計(jì)算框架,不過和這個(gè)可不一樣。別搞混了。

        舉個(gè)例子吧,比如說有一個(gè)集合Student數(shù)據(jù),我們要刪選出學(xué)生名字為“張三”的學(xué)生,或者是找出所有年齡大于18歲的所有學(xué)生。此時(shí)我們就可以直接使用Stream來篩選。當(dāng)然了這只是給出了其中一個(gè)例子。Stream還有很多其他的功能。

        Stream和Collection的區(qū)別就是:Collection只是負(fù)責(zé)存儲數(shù)據(jù),不對數(shù)據(jù)做其他處理,主要是和內(nèi)存打交道。但是Stream主要是負(fù)責(zé)計(jì)算數(shù)據(jù)的,主要是和CPU打交道。現(xiàn)在明白了吧。

        二、Stream語法講解

        Stream執(zhí)行流程很簡單,主要有三個(gè),首先創(chuàng)建一個(gè)Stream,然后使用Stream操作數(shù)據(jù),最后終止Stream。有點(diǎn)類似于Stream的生命周期。下面我們根據(jù)其流程來一個(gè)一個(gè)講解。

        1、前提準(zhǔn)備

        首先我們創(chuàng)建一個(gè)Student類,以后我們每次都是操作這個(gè)類

        然后下面我們再創(chuàng)建一個(gè)StudentData類,用于獲取其數(shù)據(jù)

        我們只需要把方法變成static類型的就可以了。

        2、創(chuàng)建一個(gè)Stream

        方式一:通過一個(gè)集合創(chuàng)建Stream

        方式二:通過一個(gè)數(shù)組創(chuàng)建Stream

        方式三:通過Stream.of

        方式四:創(chuàng)建一個(gè)無限流

        3、使用Stream操作數(shù)據(jù)

        操作1:篩選和切片

        操作2:映射

        操作3:排序

        4、終止Stream

        操作1:匹配和查找

        操作2:歸約

        操作3:收集

        stream基本的語法就是這樣,你會發(fā)現(xiàn)Stream就像是一個(gè)工具一樣,可以幫我們分析處理數(shù)據(jù),極其的好用,但是目前還不知道其效率如何。根據(jù)網(wǎng)上一位大佬的內(nèi)存時(shí)間分析,其實(shí)在數(shù)據(jù)量比較龐大的時(shí)候,Stream可以為我們節(jié)省大量的時(shí)間,數(shù)據(jù)量小的時(shí)候并不明顯。

        往期推薦

        “華為天才少年”自制百大Up獎杯,網(wǎng)友:技術(shù)難度不高侮辱性極強(qiáng)

        Spring中涉及的設(shè)計(jì)模式總結(jié)

        程序員專屬壁紙,騷氣十足!

        ArrayList的多線程場景,如何避坑?

        下方二維碼關(guān)注我

        技術(shù)草根,堅(jiān)持分享?編程,算法,架構(gòu)

        看完文章,餓了點(diǎn)外賣,點(diǎn)擊 ??《無門檻外賣優(yōu)惠券,每天免費(fèi)領(lǐng)!》

        朋友,助攻一把!點(diǎn)個(gè)在看
        瀏覽 29
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 18一20女人毛片毛片 | 他每挺进一下女人就呻吟 | 伊人国产在线视频 | 97人人妻人人操 | 日日摸夜夜添夜夜添欧美毛片小说 |