Java 从构造函数返回ArrayList的集合

Java 从构造函数返回ArrayList的集合,java,arraylist,getter-setter,Java,Arraylist,Getter Setter,我的这个初学者作业需要创建一个名为getStudentsByMajor(String major)的方法 此方法返回主修专业的学生的集合(ArrayList) 以下是我目前的进展: private String courseName; private String roomNumber; private String Lecturer; private ArrayList <Student> studentList; public Lectu

我的这个初学者作业需要创建一个名为getStudentsByMajor(String major)的方法

此方法返回主修专业的学生的集合(ArrayList)

以下是我目前的进展:

    private String courseName;
    private String roomNumber;
    private String Lecturer;
    private ArrayList <Student> studentList;

    public LectureRoom(String roomNumber , String courseName , String Lecturer)
    {

        this.courseName=courseName;
        this.roomNumber=roomNumber;
        this.Lecturer = Lecturer;
        this.studentList = new ArrayList<Student>();
    }

    public void addStudent(String name, String id, String major)
    {
        Student s = new Student(name, id , major);
        studentList.add(s);
    }

    public ArrayList<Student> getStudentsByMajor(String major)
    {

    }
通过学习setter和getter,我了解到只要有“getter”这个词,通常就没有参数

我认为可行的方法是:

public ArrayList<Student> getStudentsByMajor(String major)
        {
            for( Student a : studentList)
            {
                System.out.println(major)
            }
        }
公共数组列表getStudentsByMajor(字符串专业)
{
(学生a:学生名单)
{
系统输出打印项次(专业)
}
}

显然这是错误的,但我希望我能在这里得到一些提示

getStudentsByMajor
中:

  • 创建新的学生列表(空)
  • 迭代现有学生(
    studentList
  • 对于每个学生,检查专业
  • 如果主选项确定,则添加到新列表中
  • 返回新列表

  • getStudentsByMajor
    中:

  • 创建新的学生列表(空)
  • 迭代现有学生(
    studentList
  • 对于每个学生,检查专业
  • 如果主选项确定,则添加到新列表中
  • 返回新列表
  • 公共数组列表getStudentsByMajor(字符串专业)
    {
    ArrayList students=新ArrayList();
    用于(学生:学生名单){
    如果(student.getMajor()等于(major))
    学生。添加(学生);
    }
    留学生;
    }
    
    公共阵列列表getStudentsByMajor(字符串专业)
    {
    ArrayList students=新ArrayList();
    用于(学生:学生名单){
    如果(student.getMajor()等于(major))
    学生。添加(学生);
    }
    留学生;
    }
    
    getStudentsByMajor()
    并不像你的标题所说的那样是一个构造器。试试你自己你认为可行的方法!!如果你有问题,那么你可以来这里。
    getStudentsByMajor()
    不是你标题中所说的构造函数。试试你自己,你认为会有用的!!如果你有问题,那么你可以来这里。谢谢!RC写的东西很有道理。如前所述,我需要的是创建另一个空学生的新列表。谢谢!RC写的东西很有道理。如前所述,我需要的是创建另一个空学生的新列表。
    for(ElementType element: collection){
        loop body;
        }
    
    public ArrayList<Student> getStudentsByMajor(String major)
            {
                for( Student a : studentList)
                {
                    System.out.println(major)
                }
            }
    
    public ArrayList<Student> getStudentsByMajor(String major)
    {
        ArrayList<Student> students = new ArrayList<>();
    
        for (Student student : studentList) {
            if (student.getMajor().equals(major))
                students.add(student);
        }
    
        return students;
    }