覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

很多人私信我說,你是不是不寫程序?我肯定寫阿,我曾經也寫過很多年的程序,為了證明我自己的程序水平,今天告訴大家一個小竅門,對了,我也承認,java是最好的語言。


覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

別跟我說都java13了,你得考慮有一部分人的感受....

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

一、Stream是什麼

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

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

Stream和Collection的區別就是:Collection只是負責存儲數據,不對數據做其他處理,主要是和內存打交道。但是Stream主要是負責計算數據的,主要是和CPU打交道。現在明白了吧。

二、Stream語法講解

Stream執行流程很簡單,主要有三個,首先創建一個Stream,然後使用Stream操作數據,最後終止Stream。有點類似於Stream的生命週期。下面我們根據其流程來一個一個講解。

1、前提準備

首先我們創建一個Student類,以後我們每次都是操作這個類

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

然後下面我們再創建一個StudentData類,用於獲取其數據

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

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

2、創建一個Stream

方式一:通過一個集合創建Stream

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

方式二:通過一個數組創建Stream

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

方式三:通過Stream.of

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

方式四:創建一個無限流

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

3、使用Stream操作數據

操作1:篩選和切片

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

操作2:映射

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

操作3:排序

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

4、終止Stream

操作1:匹配和查找

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

操作2:歸約

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

操作3:收集

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

stream基本的語法就是這樣,你會發現Stream就像是一個工具一樣,可以幫我們分析處理數據,極其的好用,但是目前還不知道其效率如何。根據網上一位大佬的內存時間分析,其實在數據量比較龐大的時候,Stream可以為我們節省大量的時間,數據量小的時候並不明顯。

如果覺得這篇文章寫得不錯,歡迎關注轉發收藏。

50+行業報告白皮書,9大行業分析指標體系,60+名企規劃PPT領取方式

覺得Java不是最好的語言?那你可能不知道Java8的這個新特性


覺得Java不是最好的語言?那你可能不知道Java8的這個新特性

首先請你評論區留言:學習,並關注轉發收藏!

然後點擊我的頭像,私信“數據治理”即可~


分享到:


相關文章: