2014-03-25 15 views
0

我的這個初學者作業需要創建一個名爲getStudentsByMajor(String major)的方法。從構造函數返回ArrayList的集合

此方法返回主要專業的學生的集合(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) 
    { 

    } 

(的問題的細節部分) 提示:

public ArrayList<Student> getStudentsByMajor(String major) 

更多提示:

for(ElementType element: collection){ 
    loop body; 
    } 

學習setter和getter,我明白,每當「getter」這個詞出現時,通常都沒有參數。

我想會的工作是一樣的東西:

public ArrayList<Student> getStudentsByMajor(String major) 
     { 
      for(Student a : studentList) 
      { 
       System.out.println(major) 
      } 
     } 

顯然,這是錯誤的,但我希望我能得到一些指點這裏。

+0

'getStudentsByMajor()'不是標題所說的構造函數。 –

+0

試試你自己認爲會起作用的東西!如果你問題,那麼你可以來這裏。 – AJJ

回答

1
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; 
} 
+0

謝謝! RC寫的很有意義。如前所述,我需要的是創建另一個空的學生清單。 –

3

getStudentsByMajor

  1. 造成學生的新列表(空)
  2. 遍歷現有學生(studentList
  3. 爲每個學生檢查主要
  4. 如果主要確定添加到新列表
  5. 返回新列表