Icono play
Java
Mapas

Un Map en Java es una estructura de datos que guarda elementos en pares clave-valor, donde clave (key) es un identificador único de un valor(value) dado:

{“clave”:”valor”}  -> {“nombre”:”Juan”}

La estructura Map se importa en nuestro código para poder utilizarse desde el paquete incluido en Java:
import java.util.HashMap;
Es conocida en otros lenguajes como “diccionario” y tiene diferentes matices según el lenguaje de programación que estemos utilizando.

Características del método Map

  • Los elementos guardados no están ordenados, ni mantienen un orden cuando se agregan al Map.
  • Si bien cuando utilizamos HashMap para crear el mapa, los elementos no se guardan ordenados, existen otras clases que sí lo hacen, como TreeMap y LinkedHashMap.
  • No está permitido ingresar claves duplicadas, en caso de que suceda, la última clave ingresada anulará las otras.
  • Los elementos que contiene el mapa se pueden extraer por separado, por un lado los key y por otro los values, o bien extraer todo junto.

Métodos de la clase Map en Java

La clase Map, tiene muchos métodos útiles, por ejemplo:

.Put

Con .put, agregamos elementos al mapa:

public class Main {
    public static void main(String[] args) {

        // Creamos el Map paisCapital

        HashMap < String, String > paisCapital = new HashMap < String, String > ();

        // Llenamos el mapa con su par clave:valor (Pais:Capital)

        paisCapital.put("Rusia", "Moscu");
        paisCapital.put("España", "Madrid");
        paisCapital.put("Argentina", "Buenos Aires");
        paisCapital.put("Brasil", "Brasilia");
        System.out.println(paisCapital);
    }
}

.Get

Con .get accedemos a un elemento especificado, por ejemplo:
paisCapital.get(“España”);

.Remove

Con .remove quitamos un elemento especificado:
paisCapital.remove(“Rusia”);

.Clear

Para borrar todos los elementos, utilizamos .clear:
paisCapital.clear();

Bucles for

También podemos recorrer un mapa (clave:valor) a través de un bucle for, utilizando los distintos métodos disponibles que son keySet y values.

En la definición del bucle aclaramos si queremos la clave (la parte izquierda del par), el valor (la parte derecha del par) o ambos:
Para mostrar la clave(key):

for (String i: paisCapital.keySet()) {

    //en nuestro ejemplo va a mostrarnos los países
    System.out.println(i);
}

Para mostrar el valor(value):

for (String i: paisCapital.values()) {
    
    //en nuestro ejemplo va a mostrarnos, las capitales
    System.out.println(i);
}

Observemos que hemos utilizado el tipo de dato String, que en Java es un objeto, no es un tipo de dato primitivo (datos primitivos: int, char, boolean, etc.).
Para poder usar datos de tipo primitivo, debemos “envolverlos” en una clase contenedora equivalente, como lo sería para un dato int -> Integer, para un dato char -> Character  y así sucesivamente.

Otros métodos de Map:

  • nombreMap.size(); // Nos informa la cantidad de elementos que tiene el Map. 
  • nombreMap.isEmpty(); // Devuelve true si el Map está vacío y false si no lo está.
  • nombreMap.containsKey(donde K es la clave); // Retorna true si hay dentro del map, una clave que coincida con K.
  • nombreMap.containsValue(donde V es el valor); // Retorna true si en el map se encuentra un Valor que coincide con V.

Observación: Muchas veces se interpreta que HashMap y Map son lo mismo, pero no lo son. El prefijo Hash delante de un método, indica que es una implementación de dicho método, mientras que Map, es el método en sí mismo, para entenderlo mejor:
indica implementación de un método ← HashMap → el método propiamente dicho

Dentro de las clases Map que vienen con Java, las que se utilizan con más frecuencia son:

  • HashMap, es la más común, se usa para crear el mapa, no acepta claves (keys) duplicadas y no guarda un orden de los elementos ingresados.
  • TreeMap, ordena de manera “natural” el mapa, como por ejemplo de menor a mayor
  • LinkedHashMap, al insertar elementos en el mapa, estos se guardan en el orden ingresado, las búsquedas con esta clase son más lentas.
¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: