1.定义一个HashMap,用于存储合并后的值
2.循环list列表,得到list里面各个map中key对应的value值,并判断创建的HashMap中是否存在key对应的value值
2.1:如果不存在就将该map存进HashMap中
2.2:如果存在则将创建的Map对应的值取出来并计算
Map<String, Object> keyValueMap = new HashMap<>();
for(GenericValue map : List) {
String productId = (String) map.get("productId");//取出值
Map<String, Object> InfoMap =(Map)keyValueMap.get(productId);//得到keyValueMap的key
if (InfoMap != null) {//如果不为null,则代表创建的keyValueMap中有重复的map
//从InfoMap中去除对应的值并进行计算或合并
}else {//如果为null,则代表创建的keyValueMap中没有重复的map
//把相应的值存进keyValueMap中
}
keyValueMap.put(productId, map );
}
3.最后再把得到的新的Map遍历,创建一个新的list返回即可
List<Map> newList = new ArrayList<>();
Set keySet = keyValueMap.keySet();
Iterator itKey = keySet.iterator();
while(itKey.hasNext()) {
newList.add((Map)keyValueMap.get(itKey.next()));
}