Java 中 lambda List 转 Map总结

1.Map的value是entity

key是 ExpenseTypeVO的id , value是ExpenseTypeVO.

 List<ExpenseTypeVO> expenseTypeVOList = configFeign.getExpenseTypeList(new ExpenseTypeQueryVO()).getModels();
 Map<Long, ExpenseTypeVO> expenseTypeVOMap = expenseTypeVOList.stream()
  .collect(Collectors.toMap(ExpenseTypeVO::getId, Function.identity()));

2.Map的value是List

key是 PurchaseOrderProduct的id , value是List.–按productId分组

 List<PurchaseOrderProduct> purchaseOrderProductList = purchaseOrderService.getPurchaseOrderProductByLongTerm(purchaseOrderQueryVO).getModels();
 Map<Long, List<PurchaseOrderProduct>> purchaseOrderProductMap = purchaseOrderProductList.stream().collect(Collectors.groupingBy(PurchaseOrderProduct::getProductId));

3.Map的value是entity里面某个属性

key是 AdvanceStockOutDistributionDetailVO::getProductId ,
value是按productId分组后将AdvanceStockOutDistributionDetailVO::getDeliveryStockQuantity 相加得到的值

 List<AdvanceStockOutDistributionDetailVO> list = advanceStockOutDistributionService.getAdvanceStockOutDistributionDetailDeliveryStockQuantityList(stockOutDistributionDetailQueryVO, userSessionInfo).getModels();
 Map<Long, BigDecimal> map= list.stream().collect(Collectors.toMap(AdvanceStockOutDistributionDetailVO::getProductId, AdvanceStockOutDistributionDetailVO::getDeliveryStockQuantity, (deliveryStockQuantity, oldDeliveryStockQuantity) -> {
            oldDeliveryStockQuantity = deliveryStockQuantity.add(oldDeliveryStockQuantity);
            return oldDeliveryStockQuantity;
 }));

这里我的value是deliveryStockQuantity 相加的结果,也可以自己定义我们要合并处理的方法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值