一、根据List<Model>进行分组:
Map<String, StudycaseSgradeVo> mapStuGrade = Maps.uniqueIndex(lastList, new Function<StudycaseSgradeVo, String>() {
public String apply(StudycaseSgradeVo from) {
return from.getStudentNo();
}
});
根据studentNo进行分组,key为studentNo,value为studentNo对应的实体Vo。
或者:
List<HomeworkStudent> list = homeworkStudentMapper.queryListByHomeworkTime("2017-11-11");
//按照class进行分组
Map<String, List<HomeworkStudent>> map = new HashMap<String, List<HomeworkStudent>>();
for(HomeworkStudent hs : list) {
List<HomeworkStudent> staList = map.get(hs.getHomeWorkListData().getClassCode());
if(staList==null){
staList = new ArrayList<HomeworkStudent>();
}
staList.add(hs);
map.put(hs.getHomeWorkListData().getClassCode(), staList);
}
分组后的结果没map集合,key为分组的值,value为该值下的集合
二、去除List<Model>中重复的数据
Set set = new HashSet();
List<StudycaseSgradeVo> newList = new ArrayList();
for(StudycaseSgradeVo vo : list) {
if(set.add(vo.getStudentName())) {
newList.add(vo);
}
}
list.clear();
list.addAll(newList);
set作为工具进行和原来数据一样有序去重!
或者
//根据算法进行过滤 和原数据的顺序一致
for (int i = 0; i < list.size() - 1; i++) {
for (int j = list.size() - 1; j > i; j--) {
if (list.get(j).gettCode().equals(list.get(i).gettCode())) {
list.remove(j);
}
}
}
//重写hashCode()和equal()方法 不然去重不了,结果无序号
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);