Java 10 minutos de lectura

Uso de HashMap en Java

Aprende cómo utilizar mapas de datos con HashMap, sus ventajas, métodos clave y errores comunes.

Por InsiderAnh 5 de julio de 2025

¿Qué es un HashMap?

Un HashMap es una estructura de datos que permite almacenar pares clave-valor. Es parte del paquete java.util y permite acceder rápidamente a los valores a través de una clave única.

¿Cuándo usarlo?

  • Cuando necesitas asociar datos (como nombres y edades).
  • Cuando buscas eficiencia en la búsqueda (O(1) promedio).
  • Para contar repeticiones, agrupar por categoría, o crear índices.

Métodos principales

  • put(K clave, V valor): agrega o reemplaza un valor.
  • get(K clave): obtiene el valor asociado.
  • remove(K clave): elimina una entrada.
  • containsKey(K clave): verifica si existe.
  • keySet(): obtiene todas las claves.
  • values(): obtiene todos los valores.

Ejemplo práctico

Veamos un ejemplo usando nombres y edades:

Java

// Declaración de un HashMap
Map<String, Integer> edades = new HashMap<>();

// Agregar datos
edades.put("Ana", 25);
edades.put("Luis", 30);

// Obtener un valor
int edadAna = edades.get("Ana");
System.out.println("La edad de Ana es: " + edadAna);

// Verificar existencia
if (edades.containsKey("Luis")) {
  System.out.println("Luis está en el mapa.");
}

// Eliminar un elemento
edades.remove("Luis");

// Iterar sobre un HashMap
for (Map.Entry<String, Integer> entrada : edades.entrySet()) {
  System.out.println(entrada.getKey() + " tiene " + entrada.getValue() + " años.");
}

// Función que recibe un HashMap y calcula promedio de edades
public static double promedioEdades(Map<String, Integer> mapa) {
  int suma = 0;
  for (int edad : mapa.values()) {
    suma += edad;
  }
  return mapa.isEmpty() ? 0 : (double) suma / mapa.size();
}

double promedio = promedioEdades(edades);
System.out.println("Promedio de edades: " + promedio);

Iterando sobre un HashMap

Puedes usar un for-each con entrySet() para recorrer clave y valor.

Java

for (Map.Entry<String, Integer> entry : edades.entrySet()) {
  System.out.println(entry.getKey() + ": " + entry.getValue());
}

Buenas prácticas

  • Usa tipos no mutables como clave (String, Integer).
  • Evita claves nulas (aunque HashMap permite una).
  • Valida la existencia con containsKey() antes de acceder con get().
  • No abuses de su tamaño: si necesitas orden, usa LinkedHashMap o TreeMap.

Errores comunes

  • Tratar de acceder a una clave inexistente y obtener null sin validación.
  • Modificar el mapa mientras lo recorres sin usar un iterador.
  • Asumir que el orden de las claves es fijo (no lo es en HashMap).

Consejo importante

Si necesitas ordenar las claves, considera usar TreeMap, y si necesitas conservar el orden de inserción, usa LinkedHashMap.

Conclusión

HashMap es una herramienta poderosa para manejar datos relacionados por clave. Cuando lo usas correctamente, mejora notablemente la eficiencia de tus programas.

En el siguiente capítulo exploraremos temas avanzados como manejo de excepciones o entrada/salida con archivos.