JAVA8 Stream List转Map 合并 key

今天项目中有个查询库存操作,调用同事接口返回的结果转成map后键有重复,然后就研究了一下
stream转map后如何控制合并, 查看Collectors.toMap()后发现里面有一个mergeFunction,
JAVA8 Stream List转Map 合并 key_第1张图片
然后我就做了如下的操作,记录一下

List<AdvanceStockOutDistributionDetailVO> list = Optional.ofNullable(result.getModels()).orElse(new ArrayList<>());
list.stream().collect(Collectors.toMap(AdvanceStockOutDistributionDetailVO::getProductId, AdvanceStockOutDistributionDetailVO::getDeliveryStockQuantity, (deliveryStockQuantity, oldDeliveryStockQuantity) -> {
     oldDeliveryStockQuantity = deliveryStockQuantity.add(oldDeliveryStockQuantity);
     return oldDeliveryStockQuantity;
}));

最后需要返回第二个参数,大功告成!

你可能感兴趣的:(stream,java8,java)