扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
现在有一个List,里面有一个4个对象VoOrder,在VoOrder中有下面的属性(acctcode,acctno,amt,itemtype)和值
acctcode acctno amt itemType
CASH 0000ITME 100.00 C
CASH 0000ITEM 1000.00 C
CASHD 11111ITME 100.00 C
CASH 0000ITEM 900.00 C
ADVICE 2222ITEM 100.00 C
CASH 0000ITEM 900.00 C
现在我想把acctcode相同的合并成一个,同时汇总amt,也就说,结果变成下面的这样子
acctcode acctno amt itemType
CASH 0000ITME 2900.00 C
CASHD 1111ITME 100.00 C
ADVICE 2222ITEM 100.00 C
环list把相同的合并.
List newList = null; //创建新的list
for(int i=0; i <orderList.size(); i++){ //stuList是你的那个封装好的list
VoOrder order = (VoOrder) orderList.get(i);
if(newList == null){
newList = new ArrayList();
newList.add(order);
}else{
for(int j=0; j <newList.size(); j++){
VoOrder order1 = (VoOrder) newList.get(j);
if(order1.getAcctcode().equals(order.getAcctcode())){
stu1.setAge(order1.getAmt() + order.getAmt()); //汇总amt
newList.add(order1);
}else{
newList.add(order);
}
}
}
}
List <VoOrder> list = ... ;//楼主现有的List对象。
Map <String,VoOrder> result = new HashMap <String,VoOrder>();//汇总辅助类。
for(VoOrder vo : list){
VoOrder sum = result.get(vo.getAcctcode());
if(sum==null){
VoOrder newObj = new VoOrder();
newObj.setAcctcode(vo.getAcctcode());newObj.setAcctno(vo.getAcctno());
newObj.setAmt(vo.getAmt());newObj.setItemType(vo.getItemType());
result.put(vo.getAcctcode(),newObj);
}else{
sum.setAmt(sum.getAmt()+vo.getAmt());
}
}
List <VoOrder> result = new ArrayList <VoOrder>(sum.values());
//result就是楼主要的汇总结果。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者