java list后台数据合并怎么做?
我取得list的值为上图所示,我要的后台操作是把仓位号相同的number相加,两条数据合并为一条数据。请问怎么做?List<ProductStorehouseInput>...
我取得list的值为上图所示,我要的后台操作是把仓位号相同的number相加,两条数据合并为一条数据。请问怎么做?
List<ProductStorehouseInput> list1 = dao.listproInputsinfo(idInteger); 展开
List<ProductStorehouseInput> list1 = dao.listproInputsinfo(idInteger); 展开
展开全部
List<ProductStorehouseInput> list1 = dao.listproInputsinfo(idInteger);
Iterator it = list1.iterator();
Map map = new HashMap();
while(it.hasNext()){
ProductStorehouseInput psi = (ProductStorehouseInput)it.next();
String key = psi.get仓库号();
if(map.get(key) == null){
map.put(key,psi);
}else {
ProductStorehouseInput psi1 = (ProductStorehouseInput)map.get(key);
psi1.setNumber(psi1.getNumber() + psi.getNumber());
map.put(key,psi1);
}
list1.remove(psi);
}
for(Object obj:map.keySet()){
list1.add(map.get(obj));
}
Iterator it = list1.iterator();
Map map = new HashMap();
while(it.hasNext()){
ProductStorehouseInput psi = (ProductStorehouseInput)it.next();
String key = psi.get仓库号();
if(map.get(key) == null){
map.put(key,psi);
}else {
ProductStorehouseInput psi1 = (ProductStorehouseInput)map.get(key);
psi1.setNumber(psi1.getNumber() + psi.getNumber());
map.put(key,psi1);
}
list1.remove(psi);
}
for(Object obj:map.keySet()){
list1.add(map.get(obj));
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个查询的时候可以group by,具体语法你百度一下
如果不想用这个就遍历list吧,将得到的结果放到一个新的list里
如果不想用这个就遍历list吧,将得到的结果放到一个新的list里
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一步:再建一个List<ProductStorehouseInput> list2,循环一次,把相同仓库号的number相加,存一个id,把单个的直接存起来。
第二步:去掉重复的。
第二步:去掉重复的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个你取出来的时候用sql语言一个select sum(number) ......group by ("仓库号") 不就行了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |