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).