传进来的list对象中有相同的wareInfoId和tagId,但是它们的number不同,需要把它们合并为一个对象,并把number相加,如下代码 //去重并合并数量 private List<WareCommentTag> distinctList(List<WareCommentTag> list) { Map<String,WareCommentTag> tempMap = new HashMap<String,WareCommentTag>(); int wareInfoId=0; int tagId=0; int id=0; String wareTagId=null; for (int i = 0; i <list.size() ; i++) { wareInfoId=list.get(i).getWareInfoId(); tagId=list.get(i).getTagId(); id=list.get(i).getId()==null?0:list.get(i).getId(); //把wareInfoId和tagId作为key,对象作为value wareTagId=String.valueOf(wareInfoId)+"-"+String.valueOf(tagId); if(tempMap.containsKey(wareTagId)){ WareCommentTag tag=new WareCommentTag(); if(id>0){ tag.setId(id); } tag.setTagId(tagId); tag.setWareInfoId(wareInfoId); tag.setNumber(tempMap.get(wareTagId).getNumber()+1); tempMap.put(wareTagId,tag); }else { tempMap.put(wareTagId,list.get(i)); } } List<WareCommentTag> newList=new ArrayList<WareCommentTag>(); for( Map.Entry<String,WareCommentTag> entry: tempMap.entrySet()){ newList.add(entry.getValue()); } return newList; }
java 对象去重复并合并
最新推荐文章于 2023-07-01 08:30:00 发布