讨论你用结构或容器保存多对多关系呢
例如学生与课程的关系,一个学生可以选多门课程,每个课程可以被多个学生修读。
在使用的时候,要查询某个课程有多少学生选择,也需要查询某个学生选择了那些课程。
我通常使用两个map来保存的,请问你们怎么处理呢,能不能再高效些也好理解呢?
Map<学生,List<课程> > map_学生_课程s;//如果没有顺序要求,可以把List换成Set
Map<课程,List<学生> > map_课程_学生s;
-------------------------
也可以理解成,数据库中的关键字为复合关键字,例如
学生,课程,成绩。
如果把这些对应关系保存到内存中,方便程序快速访问。
如果只是简单的把<学生,课程>作为符合关键字,并用Map< <学生,课程>, 成绩>保存起来,查询某个学生选了多少课程,就只能遍历了,效率低。
上面说的效率,是相比Map<学生,List<(学生,课程,成绩)> >慢, 但是可能还要一个Map<课程,List<(学生,课程,成绩)> >