天天看點

【java】Stream的使用

首先,給大家推薦一個好的地方:http://ifeve.com/stream/ 可以好好學一下

接下來,今天要删除數組中的某些元素,想到了之前用過的這個JDK8的Stream

1.Array轉化為Stream并進行篩選

【有個坑】:數組轉化為Stream有兩種方式

  1.Stream.of(數組)

  2.Arrays.stream(數組)

  差別:兩種都支援引用資料類型,但是如果是基本資料類型的話,請選擇第二種,是以妥善期間使用第二種比較合适。

【注意】:

使用stream進行任何操作,并不會是以而改變原資料的任何地方。是以想要擷取到處理後的資料,需要你接收下來。

【代碼展示】:

①filter中一行代碼如下:

②filter中寫代碼塊的代碼如下:

【注意】:filter中寫代碼塊,需要true或者false都要傳回,否則要報錯!

2.List集合轉化為Stream

【集合.stream()即可】

3.使用count()計數

計算List中對象的某個屬性值為一個特定值的 對象有多少個

先把list轉化為stream(),然後filter中寫出需要滿足的篩選條件,最後count()計數。

4.List進行filter篩選後擷取到新的List

5.List按照對象的某個字段進行去重 distinct()

【需要進行去重操作的對象,重新equals()方法】

例如下面:

【java】Stream的使用
【java】Stream的使用

View Code

6.List中有需要按照某個字段進行分組,可以使用Collectors.groupingBy()分組器實作

例如:

【java】Stream的使用
【java】Stream的使用

結果類似于下面:Map的鍵是分組字段productId ,值是一組的list

【java】Stream的使用