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

来源:互联网 发布:mac 查看文件的路径 编辑:程序博客网 时间:2024/05/16 01:00

使用语言:JAVA


如何将List中存放的实体按照某个字段进行分组呢?来看看下面的例子,假如实体中有个字段叫批次号,我们将具有相同批次号的实体放在一起,那么怎么实现呢?看下面的代码:


可以定义个Map,Map的key用于存放异常批次号,value存放实体集合List<TmExcpNewVo>。循环要排序的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;}


2 0
原创粉丝点击