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

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

Java8中StreamAPI的技巧有哪些

本篇內(nèi)容介紹了“Java8中Stream API的技巧有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站主營鳳慶網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),鳳慶h5成都微信小程序搭建,鳳慶網(wǎng)站營銷推廣歡迎鳳慶等地區(qū)企業(yè)咨詢

 Stream簡介

1、Java 8引入了全新的Stream API。這里的Stream和I/O流不同,它更像具有Iterable的集合類,但行為和集合類又有所不同。

2、stream是對集合對象功能的增強,它專注于對集合對象進行各種非常便利、高效的聚合操作,或者大批量數(shù)據(jù)操作。

3、只要給出需要對其包含的元素執(zhí)行什么操作,比如 “過濾掉長度大于 10 的字符串”、“獲取每個字符串的首字母”等,Stream  會隱式地在內(nèi)部進行遍歷,做出相應(yīng)的數(shù)據(jù)轉(zhuǎn)換。

為什么要使用Stream

1、函數(shù)式編程帶來的好處尤為明顯。這種代碼更多地表達了業(yè)務(wù)邏輯的意圖,而不是它的實現(xiàn)機制。易讀的代碼也易于維護、更可靠、更不容易出錯。

2、高端

實例數(shù)據(jù)源

Java8中Stream API的技巧有哪些

Filter

1、遍歷數(shù)據(jù)并檢查其中的元素時使用。

2、filter接受一個函數(shù)作為參數(shù),該函數(shù)用Lambda表達式表示。

Java8中Stream API的技巧有哪些

Java8中Stream API的技巧有哪些

Map

1、map生成的是個一對一映射,for的作用

2、比較常用

3、而且很簡單

Java8中Stream API的技巧有哪些

Java8中Stream API的技巧有哪些

FlatMap

1、顧名思義,跟map差不多,更深層次的操作

2、但還是有區(qū)別的

3、map和flat返回值不同

4、Map 每個輸入元素,都按照規(guī)則轉(zhuǎn)換成為另外一個元素。

還有一些場景,是一對多映射關(guān)系的,這時需要 flatMap。

5、Map一對一

6、Flatmap一對多

7、map和flatMap的方法聲明是不一樣的

(1)Streammap(Function mapper);

(2)StreamflatMap(Function> mapper);

(3)  map和flatMap的區(qū)別:我個人認為,flatMap的可以處理更深層次的數(shù)據(jù),入?yún)槎鄠€list,結(jié)果可以返回為一個list,而map是一對一的,入?yún)⑹嵌鄠€list,結(jié)果返回必須是多個list。通俗的說,如果入?yún)⒍际菍ο?,那么flatMap可以操作對象里面的對象,而map只能操作***層。

Java8中Stream API的技巧有哪些

Java8中Stream API的技巧有哪些

Reduce

1、感覺類似遞歸

2、數(shù)字(字符串)累加

3、個人沒咋用過

Java8中Stream API的技巧有哪些

Java8中Stream API的技巧有哪些

Collect

1、collect在流中生成列表,map,等常用的數(shù)據(jù)結(jié)構(gòu)

2、toList()

3、toSet()

4、toMap()

5、自定義

Java8中Stream API的技巧有哪些

Optional

1、Optional 是為核心類庫新設(shè)計的一個數(shù)據(jù)類型,用來替換 null 值。

2、人們對原有的 null 值有很多抱怨,甚至連發(fā)明這一概念的Tony Hoare也是如此,他曾說這是自己的一個“價值連城的錯誤”

3、用處很廣,不光在lambda中,哪都能用

4、Optional.of(T),T為非空,否則初始化報錯

5、Optional.ofNullable(T),T為任意,可以為空

6、isPresent(),相當于 !=null

7、ifPresent(T), T可以是一段lambda表達式 ,或者其他代碼,非空則執(zhí)行

Java8中Stream API的技巧有哪些

并發(fā)

1、stream替換成parallelStream或 parallel

2、輸入流的大小并不是決定并行化是否會帶來速度提升的唯一因素,性能還會受到編寫代碼的方式和核的數(shù)量的影響

3、影響性能的五要素是:數(shù)據(jù)大小、源數(shù)據(jù)結(jié)構(gòu)、值是否裝箱、可用的CPU核數(shù)量,以及處理每個元素所花的時間

Java8中Stream API的技巧有哪些

調(diào)試

1、list.map.fiter.map.xx 為鏈式調(diào)用,最終調(diào)用collect(xx)返回結(jié)果

2、分惰性求值和及早求值

3、判斷一個操作是惰性求值還是及早求值很簡單:只需看它的返回值。如果返回值是  Stream,那么是惰性求值;如果返回值是另一個值或為空,那么就是及早求值。使用這些操作的理想方式就是形成一個惰性求值的鏈,***用一個及早求值的操作返回想要的結(jié)果。

4、通過peek可以查看每個值,同時能繼續(xù)操作流

Java8中Stream API的技巧有哪些

“Java8中Stream API的技巧有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


分享標題:Java8中StreamAPI的技巧有哪些
網(wǎng)站網(wǎng)址:http://weahome.cn/article/iiioid.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部