list数组,根据某个字段,进行二次分组
List<A> aList = new ArrayList<>();
A a = new A();
a.setName("李三");
a.setProjectId("1234556");
aList.add(a);
a = new A();
a.setName("李四");
a.setProjectId("1234556");
aList.add(a);
a = new A();
a.setName("王二");
a.setProjectId("654321");
aList.add(a);
System.out.println(aList.toString());
//开始分层
Map<String,List<A>> aMap = new HashMap<>();
for (A ad : aList){
if(aMap.get(ad.getProjectId()) != null){
aMap.get(ad.getProjectId()).add(ad);
}else {
List<A> list = new ArrayList<>();
list.add(ad);
aMap.put(ad.getProjectId(),list);
}
}
System.out.println(aMap.toString());
输出结果
[A{projectId='1234556', name='李三'}, A{projectId='1234556', name='李四'}, A{projectId='654321', name='王二'}]
{654321=[A{projectId='654321', name='王二'}], 1234556=[A{projectId='1234556', name='李三'}, A{projectId='1234556', name='李四'}]}