Sobes.tech
Junior — Middle

¿Puede explicar la estructura interna y el funcionamiento de HashMap en Java?

sobes.tech AI

Respuesta de la IA

HashMap en Java es una estructura de datos para almacenar pares clave-valor con acceso rápido mediante la clave.

Estructura interna:

  • HashMap utiliza un array de buckets.
  • Para la clave, se calcula un código hash (hashCode), que luego se transforma en un índice del array.
  • En cada bucket se almacenan elementos con el mismo índice, generalmente en forma de lista enlazada o árbol (con Java 8, si hay muchas colisiones).

Funcionamiento:

  • Al insertar un objeto, se calcula el índice mediante el hash de la clave.
  • Si el bucket está vacío, se coloca allí el elemento.
  • Si el bucket está ocupado, se verifica la igualdad de claves (equals) para actualizar el valor o agregar un nuevo elemento.
  • Para buscar por clave, también se calcula el índice y luego se recorren los elementos en el bucket para encontrar la coincidencia.

Ejemplo:

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
int value = map.get("apple"); // 5

De esta manera, HashMap garantiza un tiempo de acceso amortizado de O(1), pero con muchas colisiones puede degradarse a O(n).