¿Cuál es la diferencia entre hashmap y concurrenthashmap?
La mayor diferencia es que ConcurrentHashMap es seguro para subprocesos, mientras que hashMap no lo es.
Implementación de interfaz Map basada en tabla hash. Esta implementación proporciona todas las operaciones de mapeo opcionales y permite valores nulos y claves nulas. (La clase HashMap es básicamente la misma que Hashtable, excepto que es asíncrona y permite valores nulos). Esta clase no garantiza el orden del mapeo y, en particular, no garantiza que el orden sea constante.
Esta implementación asume que la función hash distribuye elementos adecuadamente en depósitos, proporcionando un rendimiento consistente para las operaciones básicas (obtener y colocar). El tiempo necesario para recorrer una vista de colección es directamente proporcional a la "capacidad" de la instancia de HashMap (la cantidad de depósitos) y su tamaño (la cantidad de asignaciones clave-valor).
Parámetros importantes
Las instancias de HashMap tienen dos parámetros que afectan su rendimiento: capacidad inicial y factor de carga. La capacidad es la cantidad de depósitos en la tabla hash, mientras que la capacidad inicial es la capacidad cuando se creó la tabla hash. El factor de carga es una medida de qué tan llena puede estar una tabla hash antes de que su capacidad aumente automáticamente.
Cuando el número de entradas en la tabla hash excede el producto del factor de carga y la capacidad actual, la tabla hash se repetirá (es decir, se reconstruirá la estructura de datos interna) para que el número El número de depósitos en la tabla hash aumentará aproximadamente dos veces. En el lenguaje de programación Java, el valor predeterminado para el factor de carga es 0,75 y el elemento de la tabla hash predeterminado es 101.