Stream元素流式計算

2022-09-08 05:12:13 字數 1252 閱讀 5801

一、基本使用

1. 跟據某個屬性分組officeid

map> collect = list.stream().collect(collectors.groupingby(incomesumpojo::getofficeid));

2. 根據某個屬性分組officeid,彙總某個屬性money:

mapcollect = list.stream().collect(collectors.groupingby( incomesumpojo::getofficeid, collectors.summingdouble(incomesumpojo::getmoney) ));

3. 根據某個屬性新增條件過濾資料:

list = list.stream().filter(u -> !u.getamount().equals("0.00")) .collect(collectors.tolist());

4. list去重複:

list = list.stream().distinct() .collect(collectors.tolist());

5. 取出一組物件的某個屬性組成乙個新集合:

listtablenames = list.stream().map(user::getmessage) .collect(collectors.tolist());

6. 判斷一組物件裡面 是否每個元素都滿足條件:

boolean add = menulist.stream().allmatch(m -> "plan:ctplan:add".equals(m.getpermission()));

7. 判斷一組物件裡面 是否有至少乙個滿足條件:

boolean add = menulist.stream().anymatch(m -> "plan:ctplan:add".equals(m.getpermission()));

8. 判斷一組物件裡面 是否每個元素都不滿足條件:

boolean add = menulist.stream().nonematch(m -> "plan:ctplan:add".equals(m.getpermission()));

9.排序(引數不填:按照預設方式進行排序,傳參:實現comparator介面)

listl2 = l1.stream().sorted((t1, t2) -> );

stream流式計算的妙用

有了stream流式計算,結合著函式式介面和鏈式呼叫,對於資料的處理變得更加簡單,同時增強可讀性。比如我們有乙個user類 data allargsconstructor noargsconstructor public class user 然後有一些user物件 user user1 newus...

stream 流式演算法

j a8的流式處理極大的簡化了對於集合的操作,實際上不光是集合,包括陣列 檔案等,只要是可以轉換成流,我們都可以借助流式處理,類似於我們寫sql語句一樣對其進行操作。j a8通過內部迭代來實現對流的處理,乙個流式處理可以分為三個部分 轉換成流 中間操作 終端操作 關於list.stream map ...

流式思想概述(Stream

整體來看,流式思想類似於工廠車間的 生產流水線 這張圖中展示了過濾 對映 跳過 計數等多步操作,這是一種集合元素的處理方案,而方案就是一種 函式模 型 圖中的每乙個方框都是乙個 流 呼叫指定的方法,可以從乙個流模型轉換為另乙個流模型。而最右側的數字 3是最終結果。這裡的 filter map ski...