List<TrainingCourseClassApp>对这个进行分组;
TrainingCourseClassApp的属性有:
...
...
...
private String onBehalfApplicantId;
private String applicantRole;
private Integer applicantIdType;
private String applicantId;
...
...
我想要的是按applicantId分组成Map<String,List<TrainingCourseClassApp>>这样,其中String这个key值存储applicantId值。
有没有什么现成的方法,我对集合操作不太熟悉。

解决方案 »

  1.   

    Map<String,List<TrainingCourseClassApp>> map = new HashMap();

    List<TrainingCourseClassApp> list = new ArrayList();
    for (TrainingCourseClassApp trainingCourseClassApp : list) {
    String  key = trainingCourseClassApp.getApplicantId();
    if(map.containsKey(key)){
    List list1 = map.get(key);
    list1.add(trainingCourseClassApp);
    map.put(key, list1);
    }else{
    List list2 = new ArrayList();
    list2.add(trainingCourseClassApp);
    map.put(key, list2);
    }
    }
      

  2.   


    public static Map conMap(List<TrainingCourseClassApp> oldList) {
    List<TrainingCourseClassApp> ls = new ArrayList<TrainingCourseClassApp>();
    Map<String, List<TrainingCourseClassApp>> map = new HashMap<String, List<TrainingCourseClassApp>>();

    if(oldList == null && oldList.size() == 0) return null;

    for (TrainingCourseClassApp trainingCourseClassApp : oldList) {
    String key = trainingCourseClassApp.getApplicantId();
    if (!map.containsKey(key)) {
    ls.add(trainingCourseClassApp);
    map.put(key, ls);
    // 移除上次添加的对象。。避免每次new新的list
    ls.remove(key);
    }
    } return map;
    }