Interfaz Map de Java: Guía Completa de Map, Implementaciones y Métodos Clave
Interfaz Map de Java
Este tutorial profundiza en la interfaz Map de Java, cubriendo su estructura, implementaciones, métodos clave y uso real.
La interfaz Map, parte del paquete java.util, proporciona la base para colecciones de pares clave/valor en el framework de colecciones de Java.
Cómo Funciona Map
En Java, un Map almacena datos como pares clave/valor únicos. Cada clave es distinta y mapea a un solo valor, asegurando que no existan claves duplicadas.
Podemos recuperar o actualizar un valor referenciando su clave.

Por ejemplo, las claves us, br y es mapean a los valores United States, Brazil y Spain, respectivamente.
Notablemente, la interfaz Map gestiona tres colecciones distintas:
- Un conjunto de todas las claves
- Un conjunto de todos los valores
- Un conjunto de todas las asociaciones clave/valor (entradas)
Estos conjuntos te permiten acceder a claves, valores o entradas independientemente.
Clases que Implementan Map
Como Map es una interfaz, no puedes instanciarla directamente. En su lugar, usa una de las siguientes clases concretas, todas en el paquete java.util:
HashMapEnumMapLinkedHashMapWeakHashMapTreeMap

Subinterfaces que Extienden Map
La interfaz Map es extendida por varias subinterfaces especializadas que añaden garantías de ordenamiento o concurrencia:
SortedMap– Mantiene entradas ordenadas por claves.NavigableMap– ExtiendeSortedMapcon métodos de navegación.ConcurrentMap– Proporciona operaciones thread-safe.

Usando Map en Tu Código
Primero, importa la interfaz:
import java.util.Map;
Luego crea una instancia concreta. Por ejemplo, usando HashMap:
// Implementación Map usando HashMap
Map<Clave, Valor> numeros = new HashMap<>();
Aquí, Clave representa un identificador único, mientras que Valor contiene los datos asociados.
Métodos Principales de Map
Más allá de los métodos de la interfaz Collection, Map ofrece operaciones especializadas:
- put(K, V) – Añade un par clave/valor; reemplaza el valor si la clave ya existe.
- putAll() – Fusiona las entradas de otro mapa en este.
- putIfAbsent(K, V) – Inserta solo cuando la clave no está ya mapeada.
- get(K) – Recupera el valor para una clave dada, o
nullsi está ausente. - getOrDefault(K, valorPorDefecto) – Devuelve el valor mapeado o un default especificado.
- containsKey(K) – Verifica presencia de una clave.
- containsValue(V) – Verifica presencia de un valor.
- replace(K, V) – Actualiza el valor para una clave.
- replace(K, oldValue, newValue) – Reemplazo condicional cuando el valor actual coincide.
- remove(K) – Elimina la entrada para una clave.
- remove(K, V) – Elimina la entrada solo si la clave mapea al valor especificado.
- keySet() – Devuelve un
Setde todas las claves. - values() – Devuelve una
Collectionde todos los valores. - entrySet() – Devuelve un
Setde todos los mapeos clave/valor.
Ejemplos de Implementaciones de Map
1. Ejemplo con HashMap
import java.util.Map;
import java.util.HashMap;
class Main {
public static void main(String[] args) {
// Creando un mapa usando HashMap
Map<String, Integer> numeros = new HashMap<>();
// Insertar elementos en el mapa
numeros.put("Uno", 1);
numeros.put("Dos", 2);
System.out.println("Mapa: " + numeros);
// Acceder a las claves del mapa
System.out.println("Claves: " + numeros.keySet());
// Acceder a los valores del mapa
System.out.println("Valores: " + numeros.values());
// Acceder a las entradas del mapa
System.out.println("Entradas: " + numeros.entrySet());
// Eliminar un elemento del mapa
int valor = numeros.remove("Dos");
System.out.println("Valor Eliminado: " + valor);
}
}
Salida
Mapa: {Uno=1, Dos=2} Claves: [Uno, Dos] Valores: [1, 2] Entradas: [Uno=1, Dos=2] Valor Eliminado: 2
Para más detalles sobre HashMap, visita Java HashMap.
2. Ejemplo con TreeMap
import java.util.Map;
import java.util.TreeMap;
class Main {
public static void main(String[] args) {
// Creando Mapa usando TreeMap
Map<String, Integer> valores = new TreeMap<>();
// Insertar elementos en el mapa
valores.put("Segundo", 2);
valores.put("Primero", 1);
System.out.println("Mapa usando TreeMap: " + valores);
// Reemplazando valores
valores.replace("Primero", 11);
valores.replace("Segundo", 22);
System.out.println("Nuevo Mapa: " + valores);
// Eliminar elementos del mapa
int valorEliminado = valores.remove("Primero");
System.out.println("Valor Eliminado: " + valorEliminado);
}
}
Salida
Mapa usando TreeMap: {Primero=1, Segundo=2} Nuevo Mapa: {Primero=11, Segundo=22} Valor Eliminado: 11
Para más detalles sobre TreeMap, visita Java TreeMap.
Java
- Dominando las Interfaces en C#: Definición, Implementación y Casos de Uso Prácticos
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Dominando la Interfaz NavigableSet de Java: Navegación, Ordenación y Ejemplos Prácticos
- Dominando Expresiones Lambda en Java: Desde Básicos hasta Stream API
- Interfaz vs Clase Abstracta en Java: Cómo elegir la abstracción correcta
- Entendiendo las Interfaces en Java: Definiciones, Usos y Buenas Prácticas
- Java 9 Métodos de Fábrica de Colecciones: Simplificar Creación de List, Set y Map Inmutables
- Java 9 Métodos Privados en Interfaces: Mejorar Encapsulamiento y Reutilización de Código