将集合里面的数据按照某个参数分类

模拟测试:

 //怎样将一个集合里面的数据按照某个参数进行分类?
    public static void main(String[] args) {
        //假设有个学生的实体类 Student.class
        //定义几个不同的学生
        Student stu1 = new Student(1, "小明", "小学(1)班", 6, "男");
        Student stu2 = new Student(2, "Suny", "小学(2)班", 7, "男");
        Student stu3 = new Student(3, "小花", "小学(3)班", 7, "女");
        Student stu4 = new Student(4, "Tony", "小学(3)班", 5, "女");
        Student stu5 = new Student(5, "Hello", "小学(3)班", 7, "女");
        Student stu6 = new Student(6, "小红", "小学(2)班", 7, "女");

        //定义一个集合存放学生
        List<Student> students = new ArrayList<>();
        students.add(stu1);
        students.add(stu2);
        students.add(stu3);
        students.add(stu4);
        students.add(stu5);
        students.add(stu6);

        //要求:根据班级分类

        //开始处理

        //定义一个map存放分类后的数据
        Map<String, Object> params = new HashMap();
        //循环处理数据
        for (Student student : students) {
            //班级名称
            String classname = student.getClassname();
            //存放同一班级的学生
            List<Student> list = null;
            Object objectList = MapUtils.getObject(params, classname);
            if (null == objectList) {
                list = new ArrayList<>();
            } else {
                list = (List<Student>) objectList;
            }
            //将数据放到map里,班级名称作为key
            list.add(student);
            params.put(classname, list);
        }
        //处理后map数据
        //System.out.println(params);
        //验证是否正确
        List<Student> class1 = (List<Student>) MapUtils.getObject(params, "小学(1)班");
        List<Student> class2 = (List<Student>) MapUtils.getObject(params, "小学(2)班");
        List<Student> class3 = (List<Student>) MapUtils.getObject(params, "小学(3)班");
        System.out.println("小学(1)班人数:" + class1.size());
        System.out.println("小学(2)班人数:" + class2.size());
        System.out.println("小学(3)班人数:" + class3.size());
    }

验证结果: 

{
    小学(1)班=[Student{id=1, username='小明', classname='小学(1)班', age=6, sex='男'}], 
    小学(2)班=[Student{id=2, username='Suny', classname='小学(2)班', age=7, sex='男'},             
                Student{id=6, username='小红', classname='小学(2)班', age=7, sex='女'}], 
    小学(3)班=[Student{id=3, username='小花', classname='小学(3)班', age=7, sex='女'},     
                Student{id=4, username='Tony', classname='小学(3)班', age=5, sex='女'}, 
                Student{id=5, username='Hello', classname='小学(3)班', age=7, sex='女'}]
}

小学(1)班人数:1
小学(2)班人数:2
小学(3)班人数:3

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章