jdk 8常用lambda式

1545 ワード

1.BigDecimalタイプの結果セットを合計する
list.stream().map(AchievementCount::getTotalCashTarget).reduce(BigDecimal.ZERO,BigDecimal::add);
2.Longタイプの結果セットを合計する
list.stream().mapToLong(Cost::getCost).sum()
3、listの指定フィールドをフィルタする
list.stream().filter(t -> t.getDeptName().contains(deptName)).collect(Collectors.toList());
4、listの指定フィールドをグループ化する
Map> map =accounts.stream().collect(Collectors.groupingBy(Account::getContract_party));
5.リスト内の指定フィールドを並べ替える(逆順)
方法1:Comparator c 1=Comparator.comparing(root -> root.getExpend());
Collections.sort(list, c1.reversed());
方法2:dataList.sort(comparing(TotalData::getCost).reversed());
6、listを循環する
 list.forEach(t -> { if (null == t.getStatus()) { ownerIs.add(t.getOwnerId()); } });//他の条件が成立する必要がある場合に使用する
 list.forEach(t -> updateAccount(t));//このように変更方法をループ呼び出して直接呼び出すことができます
7、2つのlistは再操作を行い、集合1の重複しないデータを保持する
List list = response.getData().getItems();//一堂に集まる
List towList = accountRepository.findAll();//集合2
List distinctByUniqueList = list.stream().filter(item -> !towList.stream().map(e -> e.getOwnerId()).collect(Collectors.toList()).contains(item.getOwnerId())).collect(Collectors.toList()); 
8、list条件によるデータの削除
list.removeIf(t -> t.getDuties().contains(「運営」);
9、list秩序化パケット、主にパケット中にパケットタイプを指定する
Map> dayMap = threeDataList.stream().collect(Collectors.groupingBy(ProxyTempData::getDate,LinkedHashMap::new,Collectors.toList()));