2017-04-14 57 views
1

我應該創建一個addcourse方法到ArrayListArraylist有學生和課程。在學生之後加入課程並且結束該學生。例如,Arraylist可以包含(Student1, Course1, Course2, Student2, Course1, Course3)。當我想將Course3添加到Student1時,它應該在Course2之後,但是在Student2之前。如何在包含不同對象的ArrayList中添加對象組的結尾

addcourse方法應具備的接口: void addcourse(Student s, Course c). ,第一選擇,我要添加課程和這當然學生。我如何在ArrayList中找到Student2的索引。

+0

這完全與Android無關。 PS list.add(list.indexOf(*放置*的地方),* element *) – shagi

+0

[This](https://dzone.com/articles/hashmap-%E2%80%93-single-key-and)正是你所需要的。它使用一個HashMap在一個鍵下存儲多個值(在你的案例中)(在你的情況下爲學生)。 –

+0

@AishwaryaTiwari難道他不能只在每個Student對象中放入'ArrayList '? –

回答

0

你使用ArrayList做什麼?您只需在學生課程中添加ArrayList<Course> courses即可。

例:

public class Student{ 
    public ArrayList<Course> courses = new Arraylist<Course>; 

    //Other stuff 

    public void addCourse(Course c){ 
     courses.add(c); 
    } 
} 

編輯:

因爲這不會對OP的工作,我也包括了問題的約束範圍內的作品的方法。步驟:

  • 找到的Student
  • 索引查找下一個Student
  • 廣場的指數新Course前右側的下一個Student

如果你的ArrayList被稱爲list,那麼類似這樣的工作:

public void addCourse(Student student, Course course){ 
     int studentIndex = -1; 
     int nextStudentIndex = -1; 

     for(int i=0; i<list.size(); i++){ 
      if(!(list.get(i) instanceof Student)){ 
       continue; 
      } 

      if(list.get(i).equals(student)){ 
       studentIndex = i; 
       continue; 
      } 

      if(studentIndex != -1 && nextStudentIndex == -1){ 
       nextStudentIndex = i; 
      } 
     } 

     list.add(nextStudentIndex, course); 
    } 
+0

你是對的,但我希望在不同的課上做這個addcourse method.No更改可用於學生類 – elliotaks

+0

@elliotaks我做了一個編輯。這是否回答這個問題? –

+0

幹得好但有一個小問題。他當然喜歡當然學生課程的學生。應該像學生課程的學生課程 – elliotaks