直接看代码,就会明白。
//最后结果,发现集合大小由4变成3。集合根据特定条件被成功分组
/**
* <p>Title:main </p>
* <p>Description: </p>
* @author 鲁东顺
* @date 2017-8-17下午6:23:31
*/
public static void main(String[] args) throws Exception{
List<Article4temp> billingList = new ArrayList<Article4temp>();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
Article4temp a1 = new Article4temp();
a1.setId(1);
a1.setSign("GLOBAL_1_MOTHER");
a1.setDate(sdf.parse("2015/01/01"));
billingList.add(a1);
Article4temp a2 = new Article4temp();
a2.setId(2);
a2.setSign("GLOBAL_1_MOTHER");
a2.setDate(sdf.parse("2015/02/01"));
billingList.add(a2);
Article4temp a3 = new Article4temp();
a3.setId(3);
a3.setSign("GLOBAL_1_MOTHER");
a3.setDate(sdf.parse("2015/01/01"));
billingList.add(a3);
Article4temp a4 = new Article4temp();
a4.setId(4);
a4.setSign("GLOBAL_1_MOTHER");
a4.setDate(sdf.parse("2016/01/01"));
billingList.add(a4);
groupBillingDataByExcpBatchCode(billingList);
}
/**
* <p>Title:groupBillingDataByExcpBatchCode </p>
* <p>Description: </p>
* @author 鲁东顺
* @date 2017-8-17下午6:23:24
*/
private static Map<String, List<Article4temp>> groupBillingDataByExcpBatchCode(List<Article4temp> billingList) throws Exception{
Map<String, List<Article4temp>> resultMap = new HashMap<String, List<Article4temp>>();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
try{
System.out.println(billingList.size());
for(Article4temp tmExcpNew : billingList){
String key = sdf.format(tmExcpNew.getDate());
if(resultMap.containsKey(key)){//map中已存在,将该数据存放到同一个key的map中
resultMap.get(key).add(tmExcpNew);
}else{//map中不存在,新建key,用来存放数据
List<Article4temp> tmpList = new ArrayList<Article4temp>();
tmpList.add(tmExcpNew);
resultMap.put(key, tmpList);
}
}
System.out.println(resultMap.size());
}catch(Exception e){
e.printStackTrace();
}
return resultMap;
}