【千鋒教育】Java8新特性-集合流式編程(快速上手)

Stream是對集合的增強,流不是集合元素,不負(fù)責(zé)數(shù)據(jù)的存儲
流式編程的步驟:
1、獲取數(shù)據(jù)源,將數(shù)據(jù)源中的數(shù)據(jù)讀取到流中
2、對流中的數(shù)據(jù)進行各種各樣的處理
3、對流的數(shù)據(jù)進行整合處理
注意事項:將數(shù)據(jù)讀取到流中進行處理的時候,與數(shù)據(jù)源的數(shù)據(jù)沒有關(guān)系,中間操作數(shù)據(jù)不會影響數(shù)據(jù)源中的數(shù)據(jù)的
獲取流:集合.stream()(同步流) 或 集合.parallelStream()(并發(fā)流),數(shù)組獲取流:Arrays.stream(數(shù)組);
最終操作:
注意事項:最終操作,之所以叫最終操作,是因為,在最終執(zhí)行結(jié)束后,會關(guān)閉這個流,流中的所有數(shù)據(jù)都會銷毀。如果使用一個已經(jīng)關(guān)閉的流,會出現(xiàn)異常。
collect:將流中的數(shù)據(jù)整合起來,最常見的處理:讀取流中的數(shù)據(jù),整合到一個容器中,得到一個集合。
reduce:將流中的數(shù)據(jù)按照一定的規(guī)則聚合起來
常見的中間操作包括:filter()
(過濾)、map()
(映射)、sorted()
(排序)、distinct()
(去重)等。
常見的終端操作包括:forEach()
(遍歷輸出)、collect()
(收集結(jié)果為集合)、count()
(計數(shù))、min()
(最小值)、max()
(最大值)等。
并行流:允許多線程同時處理集合數(shù)據(jù),提高處理速度。使用.parallelStream()
方法可以將一個Stream轉(zhuǎn)換為并行流。