实体类:
@Data
public class GoodsInfoVo implements Serializable {
private static final long serialVersionUID = 2806207156680145847L;
/**
* spuId
*/
private String spuId;
/**
* 数量
*/
private String purchaseQuantity;
}
List<GoodsInfoVo> spuIdList = new ArrayList<>();
因为查出来的spuIdList中的spuId是重复的,此时需要将相同的spuId的数量相加起来做处理:
Map d = spuIdList.stream().collect(Collectors.toMap(GoodsInfoVo::getSpuId, Function.identity(),(m1,m2) -> {
Integer totalNum = Integer.valueOf(m1.getPurchaseQuantity())+Integer.valueOf(m2.getPurchaseQuantity());
m2.setPurchaseQuantity(totalNum.toString());
m2.setSpuId(m2.getSpuId());
return m2;
}));
此时得到的对象是一个Map对象,然后再将Map转为list集合
spuIdList = new ArrayList<>(d.values());
此时就得到了一 一对应的spuId和数量的对象了。