Java集合list与Map问题案例代码

问题案例

一个班级有3个教师,20名同学。按照以下方式编写

1、20名同学分分成4组,每组5人为一个list。然后每2组成为一个队。2个队成为一个班级。
2、教师每人一个键值对,然后放入map,最后,用循环打印出所有学生和教师的信息

案例代码

下面是 Java 的案例代码,实现了你描述的需求:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        // 创建学生列表
        List<String> students = new ArrayList<>();
        for (int i = 1; i <= 20; i++) {
            students.add("学生" + i);
        }

        // 将学生分成四组,每组五人
        List<List<String>> studentGroups = new ArrayList<>();
        for (int i = 0; i < 4; i++) {
            List<String> group = students.subList(i * 5, (i + 1) * 5);
            studentGroups.add(group);
        }

        // 将两个组合成一个队
        List<List<String>> teams = new ArrayList<>();
        for (int i = 0; i < 4; i += 2) {
            List<String> team = new ArrayList<>();
            team.addAll(studentGroups.get(i));
            team.addAll(studentGroups.get(i + 1));
            teams.add(team);
        }

        // 创建教师列表
        List<String> teachers = new ArrayList<>();
        for (int i = 1; i <= 3; i++) {
            teachers.add("教师" + i);
        }

        // 创建教师与班级的映射关系
        Map<String, List<List<String>>> teacherClassMap = new HashMap<>();
        for (String teacher : teachers) {
            teacherClassMap.put(teacher, teams);
        }

        // 打印学生和教师信息
        for (Map.Entry<String, List<List<String>>> entry : teacherClassMap.entrySet()) {
            System.out.println("教师:" + entry.getKey());
            List<List<String>> classes = entry.getValue();
            for (int i = 0; i < classes.size(); i++) {
                System.out.println("班级" + (i + 1) + ": " + classes.get(i));
            }
            System.out.println();
        }
    }
}

这段代码首先创建了一个包含 20 名学生的列表,并将其分成四组,每组五人。然后将两个相邻组合成一个队,总共形成了两个队。接着创建了包含三个教师名称的列表,并将每个教师与两个队形成的班级建立映射关系。最后,通过循环打印出了每个教师负责的班级和班级中的学生信息。

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享