Estoy buscando un alto rendimiento, concurrente, MultiMap. He buscado en todas partes, pero simplemente no puedo encontrar una solución que use el mismo enfoque que ConcurrentHashMap (solo bloqueando un segmento de la matriz de hash).Alto rendimiento Concurrent MultiMap Java/Scala
El multimap se leerá, se agregará y se eliminará a menudo.
La clave multimap será una cadena y su valor será arbitrario.
Necesito O (1) para encontrar todos los valores para una clave dada, O (N) está bien para la eliminación, pero O (logN) sería preferido.
Es crucial que la eliminación del último valor para una clave determinada elimine el contenedor de valores de la clave, para no perder memoria.
Aquí tienes la solución I construyó, bajo availbable ApacheV2: Index (multimap)
No hay mapa con O (1) consulta (excepto el material algoritmo de cubo, como de costumbre) . Los HashMaps tienen O (cn) con c muy pequeña. – ziggystar
ziggystar, depende de qué tan bien la función de hash distribuya las claves. Si lo hace de forma aleatoria, lo que podría esperar de un hash moderno, para cadenas arbitrarias, entonces la búsqueda es O (1). Esto es también lo que dice el HashMap Javadoc. –
Ziggy: me conformaré con una versión O (cn) –