科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道怎样合并List的问题

怎样合并List的问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

怎样合并List的问题

作者:csdn 来源:csdn 2009年12月17日

关键字: JavaSE 问答 java

  • 评论
  • 分享微博
  • 分享邮件

 怎样合并List的问题

现在有一个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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章