讨论你用结构或容器保存多对多关系呢

piaopiaolanghua 2013-08-29 11:04:02
例如学生与课程的关系,一个学生可以选多门课程,每个课程可以被多个学生修读。
在使用的时候,要查询某个课程有多少学生选择,也需要查询某个学生选择了那些课程。

我通常使用两个map来保存的,请问你们怎么处理呢,能不能再高效些也好理解呢?

Map<学生,List<课程> > map_学生_课程s;//如果没有顺序要求,可以把List换成Set
Map<课程,List<学生> > map_课程_学生s;


-------------------------
也可以理解成,数据库中的关键字为复合关键字,例如
学生,课程,成绩。

如果把这些对应关系保存到内存中,方便程序快速访问。
如果只是简单的把<学生,课程>作为符合关键字,并用Map< <学生,课程>, 成绩>保存起来,查询某个学生选了多少课程,就只能遍历了,效率低。
上面说的效率,是相比Map<学生,List<(学生,课程,成绩)> >慢, 但是可能还要一个Map<课程,List<(学生,课程,成绩)> >
...全文
80 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧