如果我们有学生和课程实体,并且他们之间的关系是多对多的,即学生可以参加许多课程,许多学生可以参加课程.如果我们必须代表这种关系,那么我们可以通过哪种方式来表示这种关系.如果我们使用hashmap与学生作为关键和学生作为值的课程列表,那么我们需要另一个hashmap,通过它我们可以表示课程与学生的关系.有没有最好的方式来表示这种关系,以便快速搜索.
我必须上课,ClassA和ClassB以及"多对多"的AssociationClass.我想使用一个结构来保存A和B之间的关联,例如我可以知道,对于A或B的每个实例,它们是它们的对应物.
我想过使用带有对键的Hashmap:
Hasmap<Pair<ClassA, ClassB>, AssociationClass> associations;
Run Code Online (Sandbox Code Playgroud)
这样,我可以添加和删除ClassA和ClassB的两个实例之间的关联,并且我可以查询两个给定实例的关系.
但是,我错过了为ClassA或ClassB的给定实例定义所有关联的功能.
我可以通过暴力破解并遍历地图的所有键来搜索给定实例之间的关联,但这是低效且不优雅的.
你知道任何数据结构/免费库可以实现吗?我不想重新发明轮子.
在此先感谢您的帮助,
拉斐尔
注意:这不是一个"数据库"问题.这些对象是用于实时计算的纯POJO,我不需要持久化的东西.