Arreglos

Arreglos Relacionales: HashMap

Explora los arreglos relacionales con HashMap en Java, una estructura de datos que permite almacenar pares clave-valor de manera eficiente. Aprende a crear, modificar y gestionar tus datos con esta poderosa herramienta.

¿Qué es un arreglo relacional?

Un arreglo relacional es una estructura de datos que permite almacenar pares clave-valor de manera eficiente. En Java, la clase HashMap es una implementación de un arreglo relacional que forma parte del paquete java.util. Esta clase proporciona métodos para agregar, eliminar y acceder a los elementos de la colección de manera eficiente.

HashMap en Java

Dentro de Java, la clase HashMap es una implementación de un arreglo relacional que forma parte del paquete java.util. Esta clase proporciona métodos para agregar, eliminar y acceder a los elementos de la colección de manera eficiente.

Creación de un HashMap

Para crear un HashMap, puedes usar la siguiente sintaxis:

import java.util.HashMap;

public class Main {
    void main() {
        HashMap<String, Integer> mapa = new HashMap<>();
    }
}

Como puedes notar, se utiliza la sintaxis de genéricos <String, Integer> para especificar el tipo de clave y valor que se almacenarán en el mapa. En este caso, estamos creando un HashMap donde las claves son cadenas de texto y los valores son números enteros. Sin embargo, puedes almacenar cualquier tipo de dato como clave o valor, como objetos personalizados, listas, etc.

Recuerda que las claves en un HashMap deben ser únicas. Si intentas agregar un par clave-valor con una clave que ya existe en el mapa, el valor asociado a esa clave se actualizará con el nuevo valor. Por lo tanto, es importante asegurarse de que las claves sean únicas para evitar sobrescribir datos importantes. Además, ten en cuenta que el orden de los elementos en un HashMap no está garantizado, ya que se basa en la función hash de las claves. Si necesitas mantener el orden de inserción, puedes considerar usar LinkedHashMap en su lugar.

Agregar elementos a un HashMap

Para agregar elementos a un HashMap, puedes usar el método put():

mapa.put("clave1", 100);
mapa.put("clave2", 200);

Esto agrega dos pares clave-valor al mapa, donde "clave1" está asociada con el valor 100 y "clave2" con el valor 200. Si intentas agregar un par clave-valor con una clave que ya existe en el mapa, el valor asociado a esa clave se actualizará con el nuevo valor. Por ejemplo:

mapa.put("clave1", 300); // Esto actualizará el valor asociado a "clave1" a 300

De igual manera, puedes agregar varios pares clave-valor a la vez utilizando el método putAll():

HashMap<String, Integer> otroMapa = new HashMap<>();
otroMapa.put("clave3", 300);
otroMapa.put("clave4", 400);
mapa.putAll(otroMapa);

Esto agregará los pares clave-valor del otroMapa al mapa, resultando en un mapa que contiene "clave1" con valor 300, "clave2" con valor 200, "clave3" con valor 300 y "clave4" con valor 400.

Acceder a elementos en un HashMap

Para acceder a los elementos de un HashMap, puedes usar el método get():

Integer valor1 = mapa.get("clave1"); // 300
Integer valor2 = mapa.get("clave2"); // 200

Esto te permitirá obtener el valor asociado a una clave específica. Si la clave no existe en el mapa, el método get() devolverá null. Por ejemplo:

Integer valorInexistente = mapa.get("claveInexistente"); // null

Sin embargo puedes devolver un valor predeterminado en caso de que la clave no exista utilizando el método getOrDefault():

Integer valorPredeterminado = mapa.getOrDefault("claveInexistente", 0); // Esto devolverá 0 en lugar de null

Eliminar elementos de un HashMap

Para eliminar elementos de un HashMap, puedes usar el método remove():

mapa.remove("clave1"); // Esto eliminará el par clave-valor asociado a "clave1"

También puedes eliminar un elemento por su valor utilizando el método remove() con dos parámetros:

mapa.remove("clave2", 200); // Esto eliminará el par clave-valor asociado a "clave2" solo si su valor es 200

Verificar la existencia de claves o valores en un HashMap

Para verificar si una clave existe en un HashMap, puedes usar el método containsKey():

boolean existeClave1 = mapa.containsKey("clave1"); // false, ya que "clave1" fue eliminada
boolean existeClave2 = mapa.containsKey("clave2"); // true

Para verificar si un valor existe en un HashMap, puedes usar el método containsValue():

boolean existeValor200 = mapa.containsValue(200); // true
boolean existeValor300 = mapa.containsValue(300); // true
boolean existeValor400 = mapa.containsValue(400); // true
boolean existeValor500 = mapa.containsValue(500); // false

Tamaño de un HashMap

Para obtener el tamaño de un HashMap, puedes usar el método size():

int tamaño = mapa.size(); // Esto devolverá el número de pares clave-valor en el mapa

Iterar sobre un HashMap

Puedes iterar sobre los elementos de un HashMap utilizando un bucle for-each junto con el método entrySet() para obtener los pares clave-valor:

for (Map.Entry<String, Integer> entrada : mapa.entrySet()) {
    String clave = entrada.getKey();
    Integer valor = entrada.getValue();
    System.out.println(clave + ": " + valor);
}

También puedes iterar solo sobre las claves utilizando el método keySet():

for (String clave : mapa.keySet()) {
    System.out.println(clave);
}

O solo sobre los valores utilizando el método values():

for (Integer valor : mapa.values()) {
    System.out.println(valor);
}

Conclusión

El HashMap es una estructura de datos poderosa y eficiente para almacenar pares clave-valor en Java. Permite agregar, eliminar y acceder a los elementos de manera rápida, lo que lo convierte en una opción ideal para muchas aplicaciones. Al comprender cómo usar un HashMap, puedes mejorar la eficiencia de tu código y gestionar tus datos de manera más efectiva. Recuerda siempre tener en cuenta las características y limitaciones de esta estructura para aprovechar al máximo sus beneficios.

Copyright Jesús Aurelio Castro Magaña © 2026