如何將List中存放的實體按照某個字段進行分組呢?來看看下面的例子,假如實體中有個字段叫批次號,我們將具有相同批次號的實體放在一起,那么怎么實現呢?看下面的代碼:
可以定義個Map,Map的key用於存放異常批次號,value存放實體集合List<TmExcpNewVo>。循環要排序的List
/**
* 對list進行分組
* @param billingList
* @return
* @throws Exception
*/
private Map<String, List<LogSys>> groupBillingDataByExcpBatchCode(List<LogSys> billingList) throws Exception{
Map<String, List<LogSys>> resultMap = new HashMap<String, List<LogSys>>();
try{
for(LogSys tmExcpNew : billingList){
if(resultMap.containsKey(tmExcpNew.getRecordCount())){//map中異常批次已存在,將該數據存放到同一個key(key存放的是異常批次)的map中
resultMap.get(tmExcpNew.getRecordCount()).add(tmExcpNew);
}else{//map中不存在,新建key,用來存放數據
List<LogSys> tmpList = new ArrayList<LogSys>();
tmpList.add(tmExcpNew);
resultMap.put(tmExcpNew.getRecordCount(), tmpList);
}
}
}catch(Exception e){
e.printStackTrace();
}
return resultMap;
}