集合处理,属性去重并将数值相加
HashMap<String, SkuDemandItemDTO> map = new HashMap<>();
for (SkuDemandItemDTO item : BomList) {// 遍历原集合
if (map.containsKey(item.getMaterielModel())) {// 若map中的key包含该型号
SkuDemandItemDTO itemDTO = map.get(item.getMaterielModel());// 取出该对象,与集合中相同的对象进行数量合并
itemDTO.setQty(item.getQty() + itemDTO.getQty());
map.put(item.getMaterielModel(), itemDTO);// 将合并数量的该对象重新存入map集合,因key值相同,所以会覆盖掉之前的对象
} else {
map.put(item.getMaterielModel(), item);
}
}
List<SkuDemandItemDTO> list = new ArrayList<>();
for (String model : map.keySet()) {// 将map中的对象重新存放新的List集合
SkuDemandItemDTO itemDTO = map.get(model);
list.add(itemDTO);
}