成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java 8中Stream API的這些奇技淫巧!你都Get到了嗎?

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

[[263526]]

 Stream簡介

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

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

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

為什么要使用Stream

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

2、高端

實例數據源

 

Filter

1、遍歷數據并檢查其中的元素時使用。

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

 

Map

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

2、比較常用

3、而且很簡單

 

FlatMap

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

2、但還是有區別的

3、map和flat返回值不同

4、Map 每個輸入元素,都按照規則轉換成為另外一個元素。

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

5、Map一對一

6、Flatmap一對多

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

(1) Stream map(Function mapper);

(2) Stream flatMap(Function> mapper);

(3) map和flatMap的區別:我個人認為,flatMap的可以處理更深層次的數據,入參為多個list,結果可以返回為一個list,而map是一對一的,入參是多個list,結果返回必須是多個list。通俗的說,如果入參都是對象,那么flatMap可以操作對象里面的對象,而map只能操作***層。

 

Reduce

1、感覺類似遞歸

2、數字(字符串)累加

3、個人沒咋用過

 

Collect

1、collect在流中生成列表,map,等常用的數據結構

2、toList()

3、toSet()

4、toMap()

5、自定義

 

Optional

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

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

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

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

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

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

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

 

并發

1、stream替換成parallelStream或 parallel

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

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

 

調試

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

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

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

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

責任編輯:龐桂玉 來源: Java后端技術
相關推薦

2023-06-26 08:05:36

2023-09-19 08:03:50

rebase?merge

2022-01-07 14:50:46

VS CodeLinux代碼

2017-08-18 13:30:01

前端CSS布局奇技

2020-05-20 19:38:11

前端js調試工具

2021-04-12 06:09:38

Spring擴展點應用

2022-09-30 12:55:14

Linux筆記

2020-11-26 11:45:31

Python繪圖代碼

2017-10-24 13:42:55

流氓App安卓Google

2021-03-30 07:47:46

SVG 濾鏡 CSS技巧

2015-04-13 13:21:45

JavaScript JavaScript

2022-04-24 16:00:15

LinuxLinux命令ls命令

2022-04-21 15:00:53

LinuxShell

2020-04-14 08:46:47

Java對象編譯器

2024-11-28 09:21:00

Python字符串代碼

2017-04-29 11:28:57

人工智能機器學習AI

2021-02-25 09:19:11

LinuxAppimage命令

2021-05-18 13:05:31

LinuxRust復用器

2021-06-07 12:20:14

LinuxASCII命令

2019-11-20 10:38:36

路由路由協議路由器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 热99| 综合久久av | 99精品久久久 | 欧洲一区二区在线 | 夜夜夜夜草 | 亚洲国产高清免费 | 久久一日本道色综合久久 | 国产精品视频不卡 | 天天综合网7799精品 | 日本一区二区三区免费观看 | 欧美日韩亚 | 久久久国产一区二区三区 | 日韩中文在线 | 欧美日韩视频在线播放 | 欧美精品一区二区三区四区 在线 | 精品一区二区久久久久久久网站 | 视频一区在线观看 | 国产在线观看 | 亚洲午夜精品 | 男人的天堂亚洲 | 久久三区| 亚洲一区国产 | 一区二区三区av | 久草青青草 | 一级黄色毛片a | 国产成人精品一区二 | 亚洲国产精品一区二区久久 | 一区二区三区视频在线观看 | 毛片电影 | 成人网址在线观看 | 精品成人在线视频 | 久久夜夜 | 日本视频在线播放 | jizz视频| 欧美一区二区三区在线看 | 毛片高清 | 国产一级大片 | 成人精品一区二区 | 日韩at| 欧美亚洲国产日韩 | 亚洲一av |