有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将学生分配到课程中

线程“main”javalangIndexOutOfBoundsException中的异常 在这里输入代码 课程班

public class Course implements Serializable {
    int id;
    String name;
    Subject subjects;
    Teacher teachers;
    List <User> students;
    List<Student> listOfStudentss = new ArrayList<Student>();
    public int getId() {
        return id;
    }

    public List<Student> getListOfStudentss() {
        return listOfStudentss;
    }

    public void setListOfStudentss(List<Student> listOfStudentss) {
        this.listOfStudentss = listOfStudentss;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Subject getSubjects() {
        return subjects;
    }

    public void setSubjects(Subject subjects) {
        this.subjects = subjects;
    }

    public Teacher getTeachers() {
        return teachers;
    }

    public void setTeachers(Teacher teachers) {
        this.teachers = teachers;
    }

    public List<User> getStudents() {
        return students;
    }

    public void setStudents(List<User> students) {
        this.students = students;
    }

    public Course(int id, String name) {
        this.id = id;
        this.name = name;
        this.subjects = subjects;
        this.teachers = teachers;
        this.students = students;
        this.listOfStudentss = listOfStudentss;
    }

    @Override
    public String toString() {
        return (" id: "+id+" name: " + name + "\n");
    }


    }

班级学生


import java.io.Serializable;

public class Student extends User implements Serializable {
   String name;
   String surname;
   String group;

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public String getSurname() {
       return surname;
   }

   public void setSurname(String surname) {
       this.surname = surname;
   }

   public String getGroup() {
       return group;
   }

   public void setGroup(String group) {
       this.group = group;
   }

       public Student(int id, String login, String password, String name, String surname, String group) {
       super(id, login, password);
       this.name = name;
       this.surname = surname;
       this.group = group;
   }


   @Override
   public String getUserData() {
       return null;
   }
   public String toString() {
       return (" id: "+id+" login: " + login + " password: " + password+" name: "+name+" surname: "+surname+" group: "+group+"\n");
   }

}

 List<Admin> listOfAdmins = new ArrayList<Admin>();
       List<Student> listOfStudents = new ArrayList<Student>();
       List<Teacher> listOfTeachers = new ArrayList<Teacher>();
       List<Subject> listofSubjects = new ArrayList<Subject>();
       List<Course> listofCourses = new ArrayList<Course>();

       Scanner scan222 = new Scanner(System.in);
       System.out.print(" ENTER ID OF COURSE: ");
       listofCourses.forEach(System.out::print);
       int idCourse = scan222.nextInt();
       for (int i = 0; i < listofCourses.size(); i++) {
           if (listOfCourses.get(i).getId()==(idCourse)) {
                       System.out.print(" ENTER ID OF STUDENT: ");
                       listOfStudents.forEach(System.out::print);
                       int studentID = scan222.nextInt();
                       for (int j=0; j<listOfStudents.size(); j++)
                           if (listOfStudents.get(j).getId()==(studentID))  {
 //error in this line                          listofCourses.get(idCourse).listOfStudentss.add(listOfStudents.get(studentID));
                               }
                                 }
                           }
                           listofCourses.get(idCourse).listOfStudentss.forEach(System.out::print);
                           listofCourses.forEach(System.out::print);

线程“main”java中出现异常。lang.IndexOutOfBoundsException:索引1超出长度1的界限 在爪哇。base/jdk。内部的util。先决条件。outOfBounds(premissions.java:64) 在爪哇。base/jdk。内部的util。先决条件。outOfBoundsCheckIndex(premissions.java:70) 在爪哇。base/jdk。内部的util。先决条件。checkIndex(premissions.java:248) 在爪哇。base/java。util。物体。checkIndex(Objects.java:372) 在爪哇。base/java。util。ArrayList。get(ArrayList.java:458) 在雷姆。main(RemR.java:93)


共 (1) 个答案

  1. # 1 楼答案

    您将两种不同的内容混为一谈:课程ID及其在listOfCourses列表中的索引

    您可能已将第一门课程的id设置为“1”,但其在listOfCourses列表中的索引为“0”。错误告诉您,您正在向listOfCourses对象询问索引“1”处的对象(这是第二个对象,因为java从0开始计数),但该列表仅包含一个对象,因此发生异常