將集合裏面的數據按照某個參數分類

模擬測試:

 //怎樣將一個集合裏面的數據按照某個參數進行分類?
    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

 

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