¿Qué es un Hashmap?

En informática, un mapa hash o una tabla hash es una forma de estructurar los datos para que cada dato esté vinculado a un número o símbolo de identificación único. Esto permite una fácil recuperación, especialmente de una gran base de datos que contiene miles de entradas. El mapa hash no es una parte específica del programa, sino que se refiere a una forma de organización de datos que asigna a cada elemento, conocido como clave, en la base de datos a un valor que representa ese elemento. La función hash es la parte del programa que vincula las claves a sus valores.

Las guías telefónicas sirven como un excelente ejemplo de mapa hash. La forma en que está distribuida la guía telefónica representa la estructura del mapa de hash. Se centra en vincular diferentes valores y vincular solo un valor a otro término correspondiente o número de teléfono. Los nombres en el directorio telefónico son las claves y los números de teléfono son los valores asociados con ellos. A cada persona en el libro se le asigna un número diferente y no hay dos iguales.

Los apartados de correos también sirven como metáfora del mapa hash. Cada persona tiene una llave para una sola caja. La caja puede contener múltiples piezas de información (facturas, cartas, postales), todo destinado a la persona que tiene la llave de la caja. Cuando se inserta la clave correcta o se empareja con la caja correcta, se abre para revelar su contenido.

Los hashmaps que funcionan perfectamente vincularían una clave a una “caja” de memoria en una base de datos de computadora. Desafortunadamente, puede ocurrir un factor conocido como colisión hash, donde dos claves van a la misma caja. Esto sucede cuando se ingresa una gran cantidad de datos y no hay suficientes «cajas» para acomodarlos todos.

A diferencia de una guía telefónica o un apartado postal, los mapas hash incluyen un tercer elemento además de la clave y el valor o la casilla con la que coincide. También incluye una función hash. Una persona sabe qué apartado postal es suyo, pero se debe indicar a una computadora qué llave va a qué casilla. La función hash mira la clave, la traduce a una serie de números o código y la vincula al cuadro que contiene el código correspondiente. El nombre de la clave, como «María», solo está allí, por lo que es más fácil de interpretar para las personas, mientras que el código real es una cadena de números que la computadora debe leer.