让一个对象的变量指向Java中的另一个对象的变量

时间:2018-04-28 06:40:35

标签: java pointers mapping

我的例子非常具体,因为我建立了一个学生和课程对象系统。每个课程都有一份学生名单和成绩,我正在寻找一种有效的方法来连接这两者。

目前我的学生对象有:

public class student {
    String studentName;
    String[] courses;

我的课程对象有:

public class course {
    String courseName;
    Map<String, Integer> studentGrade = new HashMap<>(); // where string is student names and int is their grade

但是我的学生对象中不是字符串数组,而是有一个指向到我的映射的变量吗?任何提示赞赏。

此外,我假设以这种方式保持这种状态非常糟糕,因为无论何时发生任何事情,我总是要对这两个对象进行挑战。

2 个答案:

答案 0 :(得分:0)

我假设您没有使用数据库。

在这个问题上,您可以为每个courseList保留student,也可以为每个studentList保留course

对于第一个解决方案,您只需为courses对象定义student列表。

对于第二个,您只能保留列表而不是地图。

或者你可以编写第三种方法,将每门课程映射到学生列表,意思是:

Map<String, List<Student>> courseStudentMap = new HashMap()<>;

在所有情况下,无论何时发生任何变化,您都需要手动处理,并且无法解决此问题。

答案 1 :(得分:0)

也许你可以做下一个:

public class student {
    String studentName;
    Map<String, Integer> studentGrade = new HashMap<>();// the key is courseName

public class course {
    String courseName;
    list<student> = new ArrayList<>(); 

或者您也可以这样做

public class course {
        String courseName;
        list<String> = new ArrayList<>(); //the key is studentName