集合流式編程
互聯網 2022/5/2 9:14:03
1. 集合流的簡介
1.1 集合的流式編程簡介
Stream流:是JDK1.8之后出現的新特性,也是JDK1.8新特性中最值得學習的特性之一。
Strem流:是對集合操作的增強,流不是集合的元素,也不是一種數據結構,他不負責數據的存儲。流更像是一個迭代器,可以遍歷集合中的每一個元素進行處理。
1.2 為什么要使用集合的流式編程
有些時候,我們需要對集合中的元素進行操作。在這個過程中,集合的流式編程可以大幅度的簡化代碼、將集合里面的數據讀取到一個流中,對其中的數據進行操作。
1.3 使用流式編程的步驟
- 獲取數據源(可以是集合,數組等),將其中的數據讀取到流中。
- 對流中的數據進行各種各樣的處理。
- 對流中的數據進行整合處理。
2. 數據源的獲取
2.1 數據源簡介
數據源:就是流中數據的來源。
特別注意:當將數據讀取到流中進行處理時,我們在流中對數據進行的處理時,不會影響數據源。
2.2 數據源的獲取
- 方法一:
Stream<Integer> stream = list.stream();
- 方法二:
Stream<Integer> stream = list.parallelStream();
- 方法三:
IntStream<Integer> stream = Arrays.stream(array)
關于stream()與parallelStream()的區別:
stream():獲取的數據源是串行的。 parallelStream():獲取的數據源是并行的。 其中集成了多個線程對流中的數據進行操作,效率更高。
3. 處理
3.1 filter
條件過濾,僅保留流中滿足指定條件的數據,其他不滿足的數據都會被刪除掉。
3.2 distinct
3.3 sorted
3.4 limit和skip
3.5 map和flatMap
4. 整合處理
將流中的數據最終整合到一起,可以將其存入一個集合。
4.1 collect
將流中的數據收集到一起存入一個集合,對這些數據進行一些處理。
collect方法的參數是一個Collector接口,而且,這個接口并不是一個函數式接口,實現這個接口,可以自定義收集的規則。一般情況下,物品們不需要去自定義實現這個接口,直接用Collctors工具類即可。
4.2 count
統計流中元素的數量
4.3 foreach
4.4 max和min
4.5 Matching
-
allMatch:只有當流中所有元素都滿足指定的規則時,才返回true。
-
anyMatch:只要流中有任意元素滿足指定的規則時,就會返回true。
-
noneMatch:只有當流中所有元素都不滿足指定的規則時,才返回true。
-
4.5 Find
5. Collectors工具類

關于找一找教程網
本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。
本站提供了軟件編程、網站開發技術、服務器運維、人工智能等等IT技術文章,希望廣大程序員努力學習,讓我們用科技改變世界。
[集合流式編程]http://www.yachtsalesaustralia.com/tech/detail-318721.html
- 2022-05-19VS QT 用QT插件不能配置QT的環境,每次配置完成后,再次打開還是未能配置完成
- 2022-05-19543. 二叉樹的直徑
- 2022-05-19第10章_創建和管理表
- 2022-05-19236. 二叉樹的最近公共祖先
- 2022-05-19設計模式之行為型模式-訪問者模式
- 2022-05-19企業微信-代開發自建應用開發
- 2022-05-19監控系統選型,一文輕松搞定!
- 2022-05-19使用Bootstrap搭建頁面(day4)
- 2022-05-19|NO.Z.00004|——————————|BigDataEnd|——————————————————————————————————————————————————————————————————
- 2022-05-19第四章 面向對象(上)4-面向對象的特征一:封裝性