Mapa de asociación Java muchos a muchos

Tengo clasesClase A yClase B y un "muchos a muchos"AsociaciónClase. Quiero usar una estructura para mantener las asociaciones entre A y B, como puedo saber, para cada instancia de A o B, que son sus contrapartes.

Pensé en usar un Hashmap, con claves de par:

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

De esta manera, puedo agregar y eliminar una asociación entre dos instancias deClase A yClase B, y puedo consultar una relación para dos instancias dadas.

Sin embargo, echo de menos la función de definir todas las asociaciones para una instancia determinada deClase A oClase B.

Podría hacerlo por fuerza bruta y recorrer todas las teclas del mapa para buscar asociaciones entre una instancia determinada, pero esto es ineficiente y no elegante.

¿Conoces alguna estructura de datos / biblioteca gratuita que permita esto? No quiero reinventar la rueda.

Gracias de antemano por tu ayuda,

Rafael

nótese bien: Esta no es una pregunta de "base de datos". Estos objetos son POJO puros utilizados para la computación en vivo, no necesito cosas de persistencia.

Respuestas a la pregunta(7)

Su respuesta a la pregunta