2011-12-02 71 views
-4

我在驅動程序類中有以下兩組。我如何將學生添加到模塊中?例如,我只需要在模塊ufce1上使用jane,在ufce2上使用ufce2和alex。如何附加不同集合中的對象

Student jane = new Student("jane"); 
Student alex = new Student("alex"); 

Set<Student> students = new HashSet<Object>(); 
students.add(jane); 
students.add(alex); 

Module ufce1 = new Module("UFCE1"); 
Module ufce2 = new Module("UFCE2"); 

Set<Module> modules = new HashSet<Object>(); 
modules.add(ufce1); 
modules.add(ufce2); 

模塊類:

public class Module { 
    private String name; 

    public Module(String name) { 
     this.name = name; 
    } 

    public String getName() { 
     return name; 
    } 

    @Override 
    public String toString() { 
     return name; 
    } 
} 

學生類別:

public class Student { 
    private String name; 


    public Student(String name) { 
     this.name = name; 
    } 

    public String getName() { 
     return name; 
    } 

    @Override 
    public String toString() { 
     return name; 
    } 
} 

我嘗試使用的ArrayList,但這些結果的重複,即如果用戶試圖加入一個學生到一個模塊,它們已經登記到。

Module m1 = new Module("m1", "Java"); 
    Module m2 = new Module("m2", "Software Design"); 
    Module m3 = new Module("m3", "PHP"); 
    Module m4 = new Module("m4", "MySQL"); 
    Module m5 = new Module("m5", "XML"); 

    ArrayList<Module> modules = new ArrayList<Module>(); 
    modules.add(m5); 
    modules.add(m4); 
    modules.add(m3); 
    modules.add(m2); 
    modules.add(m1); 

    jane.addModule(m1); 
    jane.addModule(m3); 
    alex.addModule(m1); 
    alex.addModule(m2); 

    m1.addStudent(jane); 
    m3.addStudent(jane); 
    m1.addStudent(alex); 
    m2.addStudent(alex); 
+0

什麼是「模塊」?這是你自己寫的課嗎?這個問題是無法回答的,因爲我們不知道'Module'類和'Student'類是什麼,我們不知道這些類應該如何使用。 – Jesper

+3

爲什麼不使用'Set '而不是'Set '? –

+1

「將學生附加到模塊」意味着什麼? –

回答

4

我假設Module是你寫的一個類。

如果是這樣,你可以在Module類中設置Set,並在其中添加addStudent()方法。

public class Module{ 
    private Set<Student> students = new HashSet<Student>(); 
    public void addStudent(Student student){ 
      students.add(student); 
    } 

} 
相關問題