java常用的算法

来源:互联网 发布:校园网mac地址克隆 编辑:程序博客网 时间:2024/05/17 00:00

一、根据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);





原创粉丝点击