我的例子非常具体,因为我建立了一个学生和课程对象系统。每个课程都有一份学生名单和成绩,我正在寻找一种有效的方法来连接这两者。
目前我的学生对象有:
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
但是我的学生对象中不是字符串数组,而是有一个指向到我的映射的变量吗?任何提示赞赏。
此外,我假设以这种方式保持这种状态非常糟糕,因为无论何时发生任何事情,我总是要对这两个对象进行挑战。
答案 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