天天看點

Stream 基本操作|學習筆記

開發者學堂課程【Java 進階程式設計:Stream 基本操作】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/20/detail/426

Stream 基本操作

内容簡介:

1.Stream 具體内容

2.Stream 基礎操作

從 JDK1.8 開始,由于已經到了大資料時代,是以在類集裡面也支援有資料的流式分析處理操作,為此就專門供一個 Stream 的接口,同時在 Collection 接口裡面也提供有為此接口執行個體化的方法。

·擷取 Stream 接口對象:​

public default Stream<E>stream();

Stream 主要功能是進行資料的分析處理,同時主要是針對于集合中的資料進行分析操作。

2.1 範例:Stream 的基本操作

先簡單的寫一個程式代碼:

首先在 Collections.addAll(all, ,);中存上幾個任意操作标志,如 “Java”“JavaScript”,“Python”,“Ruby”,“Go”。

接着對 Stream 對象執行個體化

Stream<String> stream = all.stream();

獲得 Stream 接口對象後,輸出元素個數

System.out.println(stream.count());  

​【注意這裡的 count 是 long 型的】

Stream 基本操作|學習筆記

運作結果為: 5

但如果隻進行到這裡,并未能發揮 Stream 的優勢,Stream 最大的優勢就是通過函數式程式設計進行資料的流式處理。

比如想查出在整個過程中帶有字母 “J” ,可添加代碼

System.out.println(stream.filter((ele)->ele.toLowerCase().contains(“j”)).count());

Stream 基本操作|學習筆記

運作結果為: 2

以上的程式隻是實作了一些最基礎的資料的個數統計,而更多條件下,我們可能需要的是擷取裡面的滿足條件資料的内容,是以此時可以進行實作資料的采集操作。

2.2 範例:資料采集

繼續上個例子

将滿足條件的資料收集起來轉為 List 集合

List<String>result=stream.filter((ele)->ele.toLowerCase().contains(“j”)).collect(Collectors.toList());

輸出result                system.out.println(result);

Stream 基本操作|學習筆記

運作結果為:​

[Java, JavaScript]

可以發現整個過程中,都是用函數式這種模式 來進行整體的描述操作·。

在 Stream 資料流處理的過程之中還允許資料的分頁處理,提供有兩個方法:

·設定取出的最大資料量:​

public Stream<T>limit(long maxSize);

·跳過指定資料量:​

public Stream<T>skip(long n)。

2.3 範例:觀察分頁

再添加加兩個任意的操作标志,“JSP”,“Json”

跳出兩個标志,取出兩個标志再收集

List<String>result=stream.filter((ele)->ele.toLowerCase().contains(“j”)).skip(2).limit(2).collect(Collectors.toList());

Stream 基本操作|學習筆記

[JSP, Json]

Stream 的操作主要是利用自身的特點實作資料的分析處理操作。