【java】将List中的实体按照某个字段进行分组的算法

/** 
 * 按照异常批次号对已开单数据进行分组 
 * @param billingList 
 * @return 
 * @throws Exception 
 */  
private Map<String, List<TmExcpNewVo>> groupBillingDataByExcpBatchCode(List<TmExcpNewVo> billingList) throws Exception{  
    Map<String, List<TmExcpNewVo>> resultMap = new HashMap<String, List<TmExcpNewVo>>();  
      
    try{  
        for(TmExcpNewVo tmExcpNew : billingList){  
              
            if(resultMap.containsKey(tmExcpNew.getExcpbatch())){//map中异常批次已存在,将该数据存放到同一个key(key存放的是异常批次)的map中  
                resultMap.get(tmExcpNew.getExcpbatch()).add(tmExcpNew);  
            }else{//map中不存在,新建key,用来存放数据  
                List<TmExcpNewVo> tmpList = new ArrayList<TmExcpNewVo>();  
                tmpList.add(tmExcpNew);  
                resultMap.put(tmExcpNew.getExcpbatch(), tmpList);  
                  
            }  
  
        }  
          
    }catch(Exception e){  
        throw new Exception("按照异常批次号对已开单数据进行分组时出现异常", e);  
    }  
      
    return resultMap;  
}  

猜你喜欢

转载自chimpp55.iteye.com/blog/2351501