Cargando...

HashMap en Java

Crea un HashMap<String, String> llamado scores, llama scores.put("oak", "leaf"); y luego imprime scores.get("oak"). Compila Desk.java y ejecuta java Desk. La pantalla debe mostrar una línea: leaf. La clave "oak" encuentra el valor "leaf". Guardar un par y leerlo de nuevo por clave es lo que enseña esta página.

Una clave que encuentra un valor

En la página list-methods llegabas a los valores por número de hueco: get(0). Un HashMap llega a un valor por una clave que tú eliges. Escribes el par con put. Lees el valor con get y la misma clave. No hay hueco cero en el camino didáctico de esta lección — la clave es la etiqueta.
Abre Desk.java. Mantén el nombre de la clase pública Desk para que coincida con el del archivo. Borra líneas sobrantes de ArrayList, tags.get(0), tags.size(), tags.remove(0) y cualquier demo Rack o Shelf. Esas pertenecen a las páginas de listas. Borra también cualquier Scanner, nextLine o lectura de teclado. El programa no debe esperar a que escribas.
Cerca del inicio, encima de public class Desk, escribe:
import java.util.HashMap;
Ese import trae el tipo HashMap al alcance del nombre corto. Sin él, javac no ve el nombre corto HashMap en esta página. Escribe con cuidado java.util y HashMap. No inventes import java.util.*; como requisito aquí — un import exacto basta.
Dentro de main, crea el mapa:
HashMap<String, String> scores = new HashMap<String, String>();
El primer tipo entre los ángulos es el tipo de clave. El segundo es el tipo de valor. Ambos son String en esta página para que la demo se quede en palabras. El nombre scores es el que mantienes en el archivo de enseñanza. La llamada new HashMap<String, String>() construye un mapa vacío. En ese momento no guarda ningún par.

Pon oak a leaf, luego lee oak

Llama scores.put("oak", "leaf"); en su propia línea. La primera palabra entre comillas es la clave. La segunda es el valor. El orden dentro de put importa: clave primero, valor después. No los intercambies en el archivo que conservas.
Luego escribe:
System.out.println(scores.get("oak"));
Pasa la misma clave "oak" a get. No pases "leaf" como argumento de get en el archivo guardado — get pide la clave, no el valor. No escribas scores.get(0) — esa es la forma de lista de Rack, no la forma de mapa aquí. Guarda antes de compilar.

Desk put then get

java
import java.util.HashMap;

public class Desk {
    public static void main(String[] args) {
        HashMap<String, String> scores = new HashMap<String, String>();
        scores.put("oak", "leaf");
        System.out.println(scores.get("oak"));
    }
}

Desde la carpeta que contiene Desk.java, ejecuta javac Desk.java. Cuando coinciden paréntesis, llaves, ángulos y punto y coma, javac no escribe una línea propia. Luego ejecuta java Desk — no java Desk.java ni java HashMap. Quita el final .java del comando de ejecución. Arranca la clase que tiene main.
El programa debe imprimir una línea y parar: leaf. No debe pedirte que escribas. Si la terminal espera entrada de teclado, aún queda una llamada nextLine de un ejercicio anterior en algún archivo. Borra esa llamada y conserva la creación de HashMap, la línea put y System.out.println(scores.get("oak"));.
Recorre la ejecución una vez. Java empieza en Desk.main. El import ya nombró qué HashMap quieres. La línea new construye un mapa vacío. put guarda el par oak → leaf. La llamada get("oak") devuelve leaf. La línea de impresión escribe esa palabra. La pantalla muestra leaf. No debe imprimirse nada más. Si ves oak, imprimiste la clave a mano o usaste el argumento get incorrecto. Si ves 2 o [pine], aún corre un demo size o remove de Rack — pasa a java Desk.
Si javac dice que no encuentra HashMap, falta la línea import, está mal escrita o está después de public class Desk. Mueve import java.util.HashMap; encima de la línea de la clase. Si llamas get("oak") antes de cualquier put, la impresión puede mostrar null porque esa clave nunca se guardó. Mantén put antes de get en esta página. Si escribes scores.put(oak, leaf); sin comillas, javac trata las palabras como nombres que no existen. Mantén las comillas alrededor de la clave y el valor.

Imprimir el mapa entero como segunda mirada

Un segundo archivo Desk imprime el objeto mapa después del mismo put. Eso muestra la forma de par que Java usa cuando imprimes el mapa mismo.

Desk print whole map

java
import java.util.HashMap;

public class Desk {
    public static void main(String[] args) {
        HashMap<String, String> scores = new HashMap<String, String>();
        scores.put("oak", "leaf");
        System.out.println(scores);
    }
}

Compila y ejecuta ese segundo archivo del mismo modo. La pantalla muestra {oak=leaf} — clave, signo igual, valor, dentro de llaves. Esa forma sirve para confirmar que el par está dentro del mapa. El camino didáctico para la pantalla del quiz leaf sigue siendo el primer archivo con get("oak"). Usa la impresión del mapa entero solo para ver el par guardado. No mezcles get(0) en ninguno de los archivos Desk — los mapas no usan números de hueco de lista en esta página.
Si la pantalla muestra [] o [oak, pine], aún corre un demo ArrayList. Quédate con HashMap y java Desk.

Comparado con get de lista y con put

En la página list-methods, get(0) necesitaba un índice de hueco después de add. En esta página, get("oak") necesita la cadena clave después de put. Un archivo Rack sobrante que solo imprime tags.get(0) es otra lección. Para esta página mantén en Desk las llamadas put("oak", "leaf") y get("oak").
Puedes guardar más pares con más llamadas put. Esta página guarda un solo par para que la clave y el valor impreso se vean con facilidad. Una página posterior — HashSet — guarda valores únicos sin una historia separada de par clave-valor. Quédate aquí con put y get de HashMap.
Cuando aún queden cerca archivos viejos Rack.java o Shelf.java, déjalos o bórralos solo si confunden qué clase ejecutas. Ejecuta java Desk después de compilar el archivo HashMap de esta lección.

Lo que queda para HashSet

Esta página abre el almacenamiento clave-valor con HashMap. La página siguiente abre un conjunto de valores únicos con HashSet. Quédate aquí con put y get en el mapa. No inventes el add de set como requisito en esta página; el objetivo de la lección es la clave que encuentra el valor y la pantalla leaf.

Antes de HashSet

Puedes importar java.util.HashMap, crear HashMap<String, String> scores, llamar scores.put("oak", "leaf"); y luego imprimir scores.get("oak"). Compila Desk.java y ejecuta java Desk. La pantalla muestra leaf. La clave encontró el valor. La página siguiente es HashSet, donde guardas valores únicos sin emparejar cada uno con una clave separada en el camino de esa lección.
Mantén el import encima de la clase. Mantén put antes de get. Mantén la clave "oak" igual en ambas llamadas. Esos tres hábitos son el punto de control de esta página antes de seguir. Cuando la pantalla muestra leaf después de get("oak"), HashMap hizo su trabajo para esta lección y estás listo para el tema siguiente.

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
5
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior