java8常用stream
生活随笔
收集整理的這篇文章主要介紹了
java8常用stream
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//匯總計算 reduce
CxmBiBatchFeeExt ext = new CxmBiBatchFeeExt(); List<DkSaleOrderItem> batchDkSaleOrderDetailVoLst = dkSaleOrderDetailVoMap.get(e); Optional<DkSaleOrderItem> dkSaleOrderOptional = batchDkSaleOrderDetailVoLst.stream().reduce((sum, var) -> {sum.setSaleAmount(BigDecimalUtil.add(sum.getSaleAmount(), var.getSaleAmount()));sum.setBillFee(BigDecimalUtil.add(sum.getBillFee(), var.getBillFee()));return sum; }); ext.setBillFee(dkSaleOrderOptional.map(s -> s.getBillFee()).orElse(BigDecimal.ZERO));//一般循環
dkSaleOrderDetailVoMap.keySet().stream().forEach//對象集合轉list
List<Integer> batchIdLst = dkSaleOrderDetailVoLst.stream().map(e -> e.getBatchId()).distinct().collect(Collectors.toList());//list轉map
Map<Integer, List<DkSaleOrderItem>> dkSaleOrderDetailVoMap = dkSaleOrderDetailVoLst.stream().collect(Collectors.groupingBy(e -> e.getBatchId()));Map<String, String> customGroupMap = customGrouplist.stream().collect(Collectors.toMap(CxmCustomGroup::getCustomerName, CxmCustomGroup::getMergeCustomerName, (k1, k2) -> k1));Map<Integer, Student> map = list.stream().collect(Collectors.toMap(Student::getId, student -> student));//過濾
List<DkSaleOrderVo> portionPaymentDkSaleOrderVoLst = dkSaleOrderVoLst.stream().filter(e -> e.getOrderStatus().intValue() == OrderConstant.ORDER_STATUS_PORTION_PAYMENT).collect(Collectors.toList());//排序
if(baseSaleOrderRequestVo.getOrderByClause() == 1) { // 降序tempList = page.stream().sorted(Comparator.comparing(DkSaleOrderVo::getCreditAmount).reversed()).collect(Collectors.toList());page.clear();page.addAll(tempList);} else if(baseSaleOrderRequestVo.getOrderByClause() == 2) { // 升序tempList = page.stream().sorted(Comparator.comparing(DkSaleOrderVo::getCreditAmount)).collect(Collectors.toList());page.clear();page.addAll(tempList);}//算合計
Optional<BigDecimal> repayAmount = allDkSaleOrderVo.stream().map(DkSaleOrderVo::getPaymentAmount).reduce((vo1, vo2) -> {return BigDecimalUtil.add(vo1, vo2);});searchVo.setRefundAmount(repayAmount.orElse(BigDecimal.ZERO));// 本日還款?
總結
以上是生活随笔為你收集整理的java8常用stream的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 看看这些大龄程序员都做了些什么
- 下一篇: 调研Redis高可用两种方案