day11_关于学生信息和成绩配对的列表小练习

package day11.demo01;

import java.util.ArrayList;

public class StudentTest {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("1500100001,施笑槐,22,女,文科六班");
        list.add("1500100002,吕金鹏,24,男,文科六班");
        list.add("1500100003,单乐蕊,22,女,理科六班");
        list.add("1500100004,葛德曜,24,男,理科三班");
        list.add("1500100005,宣谷芹,22,女,理科五班");
        list.add("1500100006,边昂雄,21,男,理科二班");
        list.add("1500100007,尚孤风,23,女,文科六班");
        list.add("1500100008,符半双,22,女,理科六班");
        list.add("1500100009,沈德昌,21,男,理科一班");
        list.add("1500100010,羿彦昌,23,男,理科六班");
        list.add("1500100011,宰运华,21,男,理科三班");
        list.add("1500100012,梁易槐,21,女,理科一班");
        list.add("1500100013,逯君昊,24,男,文科二班");
        list.add("1500100014,羿旭炎,23,男,理科五班");
        list.add("1500100015,宦怀绿,21,女,理科一班");
        list.add("1500100016,潘访烟,23,女,文科一班");
        list.add("1500100017,高芷天,21,女,理科五班");
        list.add("1500100018,骆怜雪,21,女,文科六班");
        list.add("1500100019,娄曦之,24,男,理科三班");
        list.add("1500100020,杭振凯,23,男,理科四班");
        list.add("1500100021,连鸿晖,22,男,理科六班");
        list.add("1500100022,薄运珧,23,男,文科四班");
        list.add("1500100023,东鸿畴,23,男,理科二班");
        list.add("1500100024,湛慕卉,22,女,文科二班");
        list.add("1500100025,翁飞昂,22,男,文科四班");

        ArrayList<String> list1 = new ArrayList<>();
        list1.add("1500100001,1000001,98");
        list1.add("1500100001,1000002,5");
        list1.add("1500100001,1000003,137");
        list1.add("1500100001,1000004,29");
        list1.add("1500100001,1000005,85");
        list1.add("1500100001,1000006,52");
        list1.add("1500100002,1000001,139");
        list1.add("1500100002,1000002,102");
        list1.add("1500100002,1000003,44");
        list1.add("1500100002,1000004,18");
        list1.add("1500100002,1000005,46");
        list1.add("1500100002,1000006,91");
        list1.add("1500100003,1000001,48");
        list1.add("1500100003,1000002,132");
        list1.add("1500100003,1000003,41");
        list1.add("1500100003,1000007,32");
        list1.add("1500100003,1000008,7");
        list1.add("1500100003,1000009,99");
        list1.add("1500100004,1000001,147");
        list1.add("1500100004,1000002,69");
        list1.add("1500100004,1000003,37");
        list1.add("1500100004,1000007,87");
        list1.add("1500100004,1000008,21");
        list1.add("1500100004,1000009,60");
        list1.add("1500100005,1000001,105");
        list1.add("1500100005,1000002,105");
        list1.add("1500100005,1000003,30");
        list1.add("1500100005,1000007,68");
        list1.add("1500100005,1000008,38");
        list1.add("1500100005,1000009,49");
        list1.add("1500100006,1000001,87");
        list1.add("1500100006,1000002,98");
        list1.add("1500100006,1000003,55");
        list1.add("1500100006,1000007,44");
        list1.add("1500100006,1000008,1");
        list1.add("1500100006,1000009,29");
        list1.add("1500100007,1000001,102");
        list1.add("1500100007,1000002,149");
        list1.add("1500100007,1000003,83");
        list1.add("1500100007,1000004,21");
        list1.add("1500100007,1000005,25");
        list1.add("1500100007,1000006,38");
        list1.add("1500100008,1000001,5");
        list1.add("1500100008,1000002,129");
        list1.add("1500100008,1000003,110");
        list1.add("1500100008,1000007,47");
        list1.add("1500100008,1000008,40");
        list1.add("1500100008,1000009,32");
        list1.add("1500100009,1000001,65");
        list1.add("1500100009,1000002,71");
        list1.add("1500100009,1000003,38");
        list1.add("1500100009,1000007,57");
        list1.add("1500100009,1000008,17");
        list1.add("1500100009,1000009,3");
        list1.add("1500100010,1000001,98");
        list1.add("1500100010,1000002,142");
        list1.add("1500100010,1000003,50");
        list1.add("1500100010,1000007,6");
        list1.add("1500100010,1000008,44");
        list1.add("1500100010,1000009,62");
        list1.add("1500100011,1000001,42");
        list1.add("1500100011,1000002,117");
        list1.add("1500100011,1000003,80");
        list1.add("1500100011,1000007,13");
        list1.add("1500100011,1000008,26");
        list1.add("1500100011,1000009,4");
        list1.add("1500100012,1000001,62");
        list1.add("1500100012,1000002,96");
        list1.add("1500100012,1000003,99");
        list1.add("1500100012,1000007,59");
        list1.add("1500100012,1000008,89");
        list1.add("1500100012,1000009,54");
        list1.add("1500100013,1000001,113");
        list1.add("1500100013,1000002,58");
        list1.add("1500100013,1000003,68");
        list1.add("1500100013,1000004,29");
        list1.add("1500100013,1000005,48");
        list1.add("1500100013,1000006,53");
        list1.add("1500100014,1000001,148");
        list1.add("1500100014,1000002,64");
        list1.add("1500100014,1000003,94");
        list1.add("1500100014,1000007,31");
        list1.add("1500100014,1000008,39");
        list1.add("1500100014,1000009,20");
        list1.add("1500100015,1000001,101");
        list1.add("1500100015,1000002,28");
        list1.add("1500100015,1000003,119");
        list1.add("1500100015,1000007,28");
        list1.add("1500100015,1000008,9");
        list1.add("1500100015,1000009,24");
        list1.add("1500100016,1000001,19");
        list1.add("1500100016,1000002,80");
        list1.add("1500100016,1000003,40");
        list1.add("1500100016,1000004,57");
        list1.add("1500100016,1000005,76");
        list1.add("1500100016,1000006,87");
        list1.add("1500100017,1000001,37");
        list1.add("1500100017,1000002,63");
        list1.add("1500100017,1000003,92");
        list1.add("1500100017,1000007,9");
        list1.add("1500100017,1000008,53");
        list1.add("1500100017,1000009,9");
        list1.add("1500100018,1000001,25");
        list1.add("1500100018,1000002,47");
        list1.add("1500100018,1000003,117");
        list1.add("1500100018,1000004,89");
        list1.add("1500100018,1000005,72");
        list1.add("1500100018,1000006,75");
        list1.add("1500100019,1000001,108");
        list1.add("1500100019,1000002,125");
        list1.add("1500100019,1000003,68");
        list1.add("1500100019,1000007,42");
        list1.add("1500100019,1000008,85");
        list1.add("1500100019,1000009,5");
        list1.add("1500100020,1000001,38");
        list1.add("1500100020,1000002,65");
        list1.add("1500100020,1000003,91");
        list1.add("1500100020,1000007,25");
        list1.add("1500100020,1000008,30");
        list1.add("1500100020,1000009,46");
        list1.add("1500100021,1000001,47");
        list1.add("1500100021,1000002,21");
        list1.add("1500100021,1000003,31");
        list1.add("1500100021,1000007,14");
        list1.add("1500100021,1000008,5");
        list1.add("1500100021,1000009,85");
        list1.add("1500100022,1000001,29");
        list1.add("1500100022,1000002,15");
        list1.add("1500100022,1000003,116");
        list1.add("1500100022,1000004,31");
        list1.add("1500100022,1000005,4");
        list1.add("1500100022,1000006,66");
        list1.add("1500100023,1000001,35");
        list1.add("1500100023,1000002,89");
        list1.add("1500100023,1000003,125");
        list1.add("1500100023,1000007,11");
        list1.add("1500100023,1000008,25");
        list1.add("1500100023,1000009,12");
        list1.add("1500100024,1000001,69");
        list1.add("1500100024,1000002,135");
        list1.add("1500100024,1000003,69");
        list1.add("1500100024,1000004,2");
        list1.add("1500100024,1000005,56");
        list1.add("1500100024,1000006,12");
        list1.add("1500100025,1000001,54");
        list1.add("1500100025,1000002,88");
        list1.add("1500100025,1000003,8");
        list1.add("1500100025,1000004,5");
        list1.add("1500100025,1000005,55");
        list1.add("1500100025,1000006,36");

        /**
         * 要求总分:先求成绩总和再加入到学生成绩中
         */

        //将id分组求出
        ArrayList<String> id = new ArrayList<>();
        for (String s : list1) {
            if (!id.contains(s.split(",")[0])) {
                id.add(s.split(",")[0]);
            }
        }

        //将id和总分划分为一个新的列表
        ArrayList<String> sIdScore = new ArrayList<>();
        for (String sid : id) {
            int sum = 0;
            for (String stu : list1) {
                if (sid.contains(stu.split(",")[0])) {
                    sum += Integer.valueOf(stu.split(",")[2]);
                }
            }
            String sidscore = sid.split(",")[0] + "," + sum;
            sIdScore.add(sidscore);
        }

        //匹配存储id、总分列表和学生列表中的id,找到相同后将总分附加到学生列表中
        ArrayList<String> stu = new ArrayList<>();
        for (String s : sIdScore) {
            for (String str : list) {
                if (s.split(",")[0].equals(str.split(",")[0])) {
                    String score = str + "," + s.split(",")[1];
                    stu.add(score);
                }
            }
        }

        //设置班级列表
        ArrayList<String> grade = new ArrayList<>();
        for (String s : stu) {
            if (!grade.contains(s.split(",")[4])) {
                grade.add(s.split(",")[4]);
            }
        }

        /*//按照班级排序
        ArrayList<ArrayList<String>> sGrade = new ArrayList<>();
        for (String s : grade) {
            ArrayList<String> strings = new ArrayList<>();
            for (String str : stu) {
                if (s.split(",")[0].equals(str.split(",")[4])) {
                    strings.add(str);
                }
            }
            sGrade.add(strings);
        }

        //遍历班级分配后学生列表最终结果
        for (ArrayList<String> s : sGrade) {
            System.out.println(s);
        }*/

        //找到每个班的最高分思想:每个班比较找出最大总分,再比较每个班最大总分属于哪位学生,将那个学生的信息存于列表
        ArrayList<String> strings = new ArrayList<>();
        for (String s : grade) {
            int max = 0;
            for (String str : stu) {
                if (s.split(",")[0].equals(str.split(",")[4])) {
                    if (Integer.valueOf(str.split(",")[5]) > max) {
                        max = Integer.valueOf(str.split(",")[5]);
                    }
                }
            }
            for (String str1 : stu) {
                if (s.split(",")[0].equals(str1.split(",")[4])) {
                    if (max == Integer.valueOf(str1.split(",")[5])) {
                        strings.add(str1);
                    }
                }
            }
        }

        //遍历结果:按班级分组求总分最高的学生
        for (String s : strings) {
            System.out.println(s);
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友培

数据皆开源!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值