Otras lecciones del Curso de Java
¿Qué es IO en Java?
¿Cúales son los Operadores en Java?
¿Qué tipos de Variables hay en Java?
¿Cómo funciona Continue y Break en Java?
¿Cómo aplicar un Try Catch y Finally en Java?
¿Cómo utilizar el método super en Java?
¿Cómo trabajar con listas en Java?
¿Cuáles son los métodos de la clase String en Java?
¿Qué es un entorno de desarrollo en Java?
¿Qué es la Sobreescritura de métodos en Java?
¿Cómo utilizar un return en Java?
¿Cómo hacer un Hola Mundo en Java?
¿Cómo utilizar Throw y throws en Java?
¿Cómo hacer comentarios en Java?
¿Cuáles son las Palabras reservadas en Java?
Variables de entorno en Java
Características y estadísticas de Java e índice TIOBE
Estructura de proyecto, paquetes y clases en Java
Qué es una función en Java
¿Cómo funcionan las Funciones Java?
Operadores aritméticos en Java
Operadores de comparación en Java
Funciones anónimas en Java
Cómo invocar una función en Java
Atajos de teclado para IntelliJ
¿Qué es la Sobrecarga de funciones en Java?
Operadores lógicos en Java
Debug en Java
Como se crea una función en Java
¿Cómo crear Sentencias Switch en Java?
Bucles for en Java
¿Cómo hacer sentencias If e If else en Java?
¿Cómo funcionan los Bucles While en Java?
¿Qué son los objetos en Java?
¿Qué es el modificador static en Java y cómo se utiliza?
¿Qué es la herencia en Java?
¿Qué son los constructores en Java y cómo se utilizan?
¿Cómo crear clases en Java?
¿Qué es el Polimorfismo en Java?
¿Qué son las Clases Abstractas en Java?
¿Qué es la Programación genérica en Java?
¿Qué son las Interfaces de Java?
Implementación de una interface en Java
¿Cómo se hace refactoring en Java?
¿Como funcionan los arrays en Java?
¿Cómo generar excepciones en Java?
¿Qué es la clase Scanner en Java?
Introducción a Swing en Java
¿Quieres descubrir más cosas como Mapas en Java?¡Apuntate a nuestro campus y empieza a aprender con nosotros y con toda la comunidad!

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: