Java muitos para muitos mapa de associação

Eu tenho aulasClasse A eClasse B e um "muitos para muitos"AssociationClass. Eu quero usar uma estrutura para manter as associações entre A e B, como posso saber, para cada instância de A ou B, quais são suas contrapartes.

Pensei em usar um Hashmap, com chaves de par:

Hasmap<Pair<ClassA, ClassB>, AssociationClass> associations;

Dessa forma, posso adicionar e remover uma associação entre duas instâncias deClasse A eClasse B, e posso consultar uma relação para duas instâncias.

No entanto, sinto falta do recurso de definir todas as associações para uma determinada instância deClasse A ouClasse B.

Eu poderia fazer isso com força bruta e percorrer todas as chaves do mapa para procurar associações entre uma determinada instância, mas isso é ineficiente e não elegante.

Você conhece alguma estrutura de dados / biblioteca gratuita que permita isso? Eu não quero reinventar a roda.

Agradeço antecipadamente por sua ajuda,

Rafael

NB: Esta não é uma pergunta do "banco de dados". Esses objetos são POJO puros usados para computação ao vivo, não preciso de material de persistência.

questionAnswers(7)

yourAnswerToTheQuestion