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

        共 1775字,需瀏覽 4分鐘

         ·

        2022-02-20 09:56


        相關(guān)閱讀

        300本計算機(jī)編程的經(jīng)典書籍下載

        AI全套:Python3+TensorFlow打造人臉識別智能小程序

        最新人工智能資料-Google工程師親授 Tensorflow-入門到進(jìn)階

        Java架構(gòu)全階段七期完整

        黑馬頭條項目 - Java Springboot2.0(視頻、資料、代碼和講義)14天完整版

        Spring核心編程思想

        2T架構(gòu)師學(xué)習(xí)資料干貨分享

        原文:http://suo.im/6p27hA

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

        一、Stream是什么

        從名字來看,Stream就是一個流,他的主要作用就是對集合數(shù)據(jù)進(jìn)行查找過濾等操作。有點類似于SQL的數(shù)據(jù)庫操作。一句話來解釋就是一種高效且易用的數(shù)據(jù)處理方式。大數(shù)據(jù)領(lǐng)域也有一個Steam實時流計算框架,不過和這個可不一樣。別搞混了。
        舉個例子吧,比如說有一個集合Student數(shù)據(jù),我們要刪選出學(xué)生名字為“張三”的學(xué)生,或者是找出所有年齡大于18歲的所有學(xué)生。此時我們就可以直接使用Stream來篩選。當(dāng)然了這只是給出了其中一個例子。Stream還有很多其他的功能。
        Stream和Collection的區(qū)別就是:Collection只是負(fù)責(zé)存儲數(shù)據(jù),不對數(shù)據(jù)做其他處理,主要是和內(nèi)存打交道。但是Stream主要是負(fù)責(zé)計算數(shù)據(jù)的,主要是和CPU打交道。現(xiàn)在明白了吧。

        二、Stream語法講解

        Stream執(zhí)行流程很簡單,主要有三個,首先創(chuàng)建一個Stream,然后使用Stream操作數(shù)據(jù),最后終止Stream。有點類似于Stream的生命周期。下面我們根據(jù)其流程來一個一個講解。
        1、前提準(zhǔn)備
        首先我們創(chuàng)建一個Student類,以后我們每次都是操作這個類

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

        我們只需要把方法變成static類型的就可以了。
        2、創(chuàng)建一個Stream

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

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

        方式三:通過Stream.of

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

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

        操作1:篩選和切片

        操作2:映射

        操作3:排序

        4、終止Stream

        操作1:匹配和查找

        操作2:歸約

        操作3:收集

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



        全棧架構(gòu)社區(qū)交流群

        ?「全棧架構(gòu)社區(qū)」建立了讀者架構(gòu)師交流群,大家可以添加小編微信進(jìn)行加群。歡迎有想法、樂于分享的朋友們一起交流學(xué)習(xí)。

        掃描添加好友邀你進(jìn)架構(gòu)師群,加我時注明姓名+公司+職位】
        看完本文有收獲?請轉(zhuǎn)發(fā)分享給更多人

        往期資源:
        Flutter 移動應(yīng)用開發(fā)實戰(zhàn) 視頻(開發(fā)你自己的抖音APP)
        Java面試進(jìn)階訓(xùn)練營 第2季(分布式篇)
        Java高級 - 分布式系統(tǒng)開發(fā)技術(shù)視頻
        瀏覽 45
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
          
          

            1. 亚洲秘 无码一区二区三区欧美 | 性菲律宾xX×Ⅹ69娇小 | 琪琪色网| 校花扒腿让我c | 99色在线观看 |