使用Stream流将List转化为Map,并对相同key值的数据进行合并,这里使用的场景是:有一个存储产品对象列表,里面存在重复的产品信息,需要将相同产品信息和产品数量进行合并
解决方法,将list使用stream的Collectors工具类的toMap进行转换,转化时的key为产品的ID,value为数量,规则为遇见相同的key进行数量的累加,代码如下所示
// 处理itemList 合并相同物料累加数量
Map<Long, Integer> map = itemList.stream().collect(Collectors.toMap(StocksComponentsItem::getStocksId, StocksComponentsItem::getCount, (e1, e2) -> e1 + e2));