Necesito implementar una relación n: m en Java. El caso de uso es un catálogo.¿Cómo implementar la relación n: m en Java?
- un producto puede estar en varias categorías
- una categoría puede contener múltiples productos
Mi solución actual es tener una clase de mapas que tiene dos HashMaps.
- La clave de la primera HashMap es la identificación del producto y el valor es una lista de la categoría ids
- La clave de la segunda HashMap es la categoría ID y el valor es una lista de ID de productos
Esto es totalmente redundante y necesito una clase de configuración que siempre tenga cuidado de que los datos se almacenen/eliminen en ambos hashpes.
Pero esta es la única manera que encontré para hacer la siguiente performant en O (1):
- qué productos sostiene una categoría?
- ¿en qué categorías está un producto?
Quiero evitar escaneos de array completos o algo así en todos los sentidos.
Pero debe haber otra solución más elegante en la que no necesite indexar los datos dos veces.
Por favor en-light me. Solo tengo Java simple, sin base de datos o SQLite o algo disponible. También realmente no quiero implementar una estructura btree si es posible.
gracias, de hecho, me quedaré con mi implementación pero aceptaré la otra respuesta porque encaja mejor con la cuestión de una solución más "elegante" sea lo que sea elegante ... –