1. 程式人生 > 其它 >Stream元素流式計算

Stream元素流式計算

一、基本使用 1. 跟據某個屬性分組OfficeId
 Map<String, List<IncomeSumPojo>> collect = list.stream().collect(Collectors.groupingBy(IncomeSumPojo::getOfficeId));
2. 根據某個屬性分組OfficeId,彙總某個屬性Money:
Map<String, Double> collect = 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. 取出一組物件的某個屬性組成一個新集合:
List<String> tableNames = 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介面)
List<Integer> l2 = l1.stream().sorted((t1, t2) -> { return t1 < t2 ? 1 : t1 == t2 ? 0 : -1; });