有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我的例子非常具体,因为我制作了一个学生和课程对象的系统。每门课程都有一份学生名单和他们的成绩,我正在寻找一种有效的方法将这两者联系起来

当前我的学生对象有:

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

但是在我的student对象中不使用字符串数组,而是使用一个指向我的映射的变量?任何提示,谢谢

另外,我假设保持这种方式是非常糟糕的,因为每当发生任何事情时,我总是要改变这两个对象


共 (2) 个答案

  1. # 1 楼答案

    我假设你没有使用数据库

    在这种情况下,您可以为每个student保留一个courseList,也可以为每个course保留一个studentList

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

    对于第二个,你只能保留一个列表而不是一张地图

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

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

    在所有情况下,无论什么时候发生变化,你都需要手动处理,而这件事是无法避免的

  2. # 2 楼答案

    也许你可以做下一步:

    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