Colisión en Hashmap en Java
La interfaz de colecciones de Java proporciona la funcionalidad de la estructura de datos de la tabla hash utilizando su clase HashMap
. Esta clase almacena los elementos en un par clave-valor donde las claves actúan como identificadores y son únicas asociadas con un valor en el mapa.
En este tutorial, discutiremos la colisión en Java.
La clave HashMap
contiene un código hash y un método equals()
. Siempre que insertamos una nueva entrada en el mapa, busca el código hash. Analiza todo el conjunto de objetos, buscando similitudes del código hash utilizando el método equals()
.
Si existe alguna entrada, el nuevo valor reemplazará el valor existente principalmente. De lo contrario, simplemente creará un par clave-valor completamente nuevo.
La colisión ocurre cuando varias claves hacen hash en el mismo depósito o, por ejemplo, cuando dos o más objetos tienen el mismo código hash pero son diferentes. Cuando dos claves obtienen el mismo valor, se forma una lista vinculada en la ubicación del depósito, donde toda la información se almacena como una entrada del mapa, que contiene el par clave-valor.
Acceder a cualquier objeto puede resultar engorroso si las entradas están presentes dentro de las listas. Estas listas enlazadas se convirtieron en árboles binarios desde la versión Java 8.
HashMap
maneja los casos de colisión de manera muy eficiente utilizando un concepto conocido como encadenamiento, que sugiere almacenar los valores en una lista enlazada o un árbol binario como lo indica la conversión de la metodología de Java 8.