如何附加不同集合中的对象

时间:2011-12-02 17:42:56

标签: java

我的驱动程序类中有以下两组。如何将学生附加到模块?例如,我只需要模块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;
    }
}

我尝试使用arrayLists但这会导致重复,即如果用户尝试将学生添加到他们已注册的模块上。

    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);

1 个答案:

答案 0 :(得分:4)

我假设Module是一个由你编写的类。

如果是这样,你可以在Module类中有一个Set,并在其中添加addStudent()方法。

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

}