Estoy buscando una estructura de datos adecuada para mi problema. Me gustaría poder seleccionar objetos de nodo de la manera más eficiente posible con dos teclas. La inserción y la eliminación también deben ser eficientes. Básicamente, cada objeto nodo tiene un par de dos claves. Los pares son únicos pero las claves individuales no lo son. Necesito poder seleccionar un grupo de nodos que tengan un valor particular para una de las dos claves.Crear un hashmap con una doble clave
Ejemplo:
el nodo 1 tiene teclas A1 y B1
Nodo2 tiene teclas a1 y b2
Nodo3 tiene teclas A2 y B2
me gustaría por ejemplo ser capaz para seleccionar el nodo con la clave a1, b1 pero también todos los nodos que tienen b2 como clave2.
Podría, por supuesto, hacer dos HashMaps (uno para cada clave) pero esta es una solución bastante fea porque cuando agrego o elimino algo, tengo que hacerlo en ambos mapas. Como habrá muchas cosas que agregar y eliminar, preferiría hacer esto de una vez. ¿Alguien tiene alguna idea sobre cómo hacer esto?
Obviamente, tener una sola tecla que combina las dos teclas juntas no resuelve el problema porque también necesito poder buscar una sola clave sin tener que buscar en todo el mapa. Eso no sería muy eficiente. El problema es un problema de eficiencia. Podría buscar todas las entradas en el mapa para una clave en particular, pero en su lugar me gustaría utilizar un hash para poder seleccionar múltiples objetos de nodo utilizando una de las dos teclas al instante.
No estoy buscando algo así como MultiKeyMap porque en esta estructura de datos la primera clave siempre permanece igual, solo puede agregar claves en lugar de reemplazar la primera con una clave diferente. Quiero poder cambiar entre la primera y la segunda clave.
Quiero y no quiero almacenar varios objetos con la misma clave. Si observa el ejemplo, puede ver que las dos claves juntas son siempre únicas. Esto se puede ver como una sola clave, por lo tanto, no almacenaría múltiples objetos bajo la misma clave. Pero si miras las claves individuales, estas no son únicas, por lo tanto, quiero almacenar varios objetos a los que hacen referencia las claves individuales.
¿Está buscando algo como [esto] (http://commons.apache.org/collections/apidocs/org/apache/commons/collections/map/MultiKeyMap.html)? – aishwarya
¿desea almacenar múltiples objetos con la misma clave? –