真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaSteam的用法

這篇文章主要介紹“Java Steam的用法”,在日常操作中,相信很多人在Java Steam的用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java Steam的用法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、馬龍網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、購物商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為馬龍等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

Java Stream 已經(jīng)出現(xiàn)很長時間了,但很多Java程序員還是不理解它的工作方式。

不會 Stream 不要緊,我們開發(fā)的時候可以不用 Stream,但理解 Stream 是咋回事還是非常必要的,至少得能看懂別人代碼中的 Steam 是吧。

下面就通過一段代碼,逐條說明每行代碼的含義,然后再對照一下不使用 Stream 的用法,之后就可以輕松理解 Stream 的用法了。

1. Stream 示例代碼解析

Java Steam的用法

這段 Stream 代碼共有 5 行,下面看每一行都是什么意思。

第1行

Java Steam的用法

第一行我們分成2部分來看,一是內(nèi)部的 Lambda 表達式:

num -> num + 4

這就是一個非常簡單的方法,等價于:

int xxx(int num){
  return num + 4;
}

傳入?yún)?shù) num,然后返回 +4 后的結(jié)果。

第2部分是 Stream.iterate() 方法,此方法會創(chuàng)建一個無限的流,第一個參數(shù) “4” 就是流的起點,第二個參數(shù) Lambda 表達式用來生產(chǎn)后續(xù)的流元素。

那么第一行聯(lián)合起來的意思就是,從4開始,之后的每個流元素都是持續(xù) “+4” 計算出來,產(chǎn)生的流就是這個樣子:

4, 8, 12, 16, 20, 24, 28, …

第2行

Java Steam的用法

limit() 的作用和 SQL 的 limit 一樣,都是用來限制數(shù)量的,Stream.iterate() 創(chuàng)建了無限流,通過 limit 將其變?yōu)榱擞邢薜牧?,限制了流中元素的個數(shù)。

例如參數(shù) total 值為 5,那么流的樣子就是:

4, 8, 12, 16, 20

第3行

Java Steam的用法

第三行是 map 方法,其中還是一個 Lambda 表達式。

map 的作用是 ”變換“,把流中每個元素都用其中的 Lambda 表達式進行計算,得到一個新的元素,放入新的流中。

這個 Lambda 表達式的意思是計算平方值,那么流就變?yōu)椋?/p>

4*4, 8*8, 12*12, 16*16, 20*20
=> 16, 64, 144, 256, 400

第4行

Java Steam的用法

第四行 filter 的作用是對流元素進行過濾,其中 Lambda 表達式返回的是一個 Boolean 值,返回 True 的放入流中,否則丟棄。

這里是判斷元素是否可以被 10 整除,流中只有 400 符合條件,那么流就變?yōu)椋?/p>

400

第5行

Java Steam的用法

第五行 reduce() 方法是最后的歸納總結(jié),它有2個參數(shù)。

第一個參數(shù)可以理解為基礎(chǔ)值,第二個參數(shù)是一個操作指令。

這里的意思就是:

從0開始,計算流中所有元素的總和,返回最終的累加值。

所以,這段 Stream 返回的結(jié)果就是 400。

2. 代碼對照理解

為了更加便于理解,我們把這段 Stream 代碼轉(zhuǎn)換為普通寫法:

Java Steam的用法

下面把2段代碼對照一下。

Java Steam的用法

Steam.iterate() 第一個參數(shù)起始值對應(yīng) for 中的起始值,Steam.iterate() 第二個參數(shù) Lambda 表達式,對應(yīng) for 中的每次循環(huán)操作。

Java Steam的用法

limit() 限制流中元素數(shù)量,對應(yīng) for 循環(huán)中的結(jié)束條件,因為 for 里面需要限制的是最大數(shù),所以要用元素個數(shù)??4來計算一下。

Java Steam的用法

map() 對應(yīng) for 內(nèi)部的平方計算。

Java Steam的用法

filter() 過濾方法對應(yīng) for 內(nèi)部的 if 判斷。

Java Steam的用法

reduce() 匯總方法對應(yīng)了3行代碼:

  • 定義匯總變量及其初始值

  • 循環(huán)中累加

  • 返回最終結(jié)果。

通過前面的逐條解析,以及代碼對照是不是就很好理解 Steam 啦,希望對你有所幫助。

到此,關(guān)于“Java Steam的用法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
文章名稱:JavaSteam的用法
標題路徑:http://weahome.cn/article/gjhidd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部