Menu
Coddy logo textTech

Iterar con entrySet()

Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 18 de 59.

Iterar con entrySet() significa obtener un conjunto de objetos Map.Entry del HashMap. Cada Map.Entry proporciona tanto la clave como su valor correspondiente, lo que lo hace más eficiente ya que evita la búsqueda adicional requerida con keySet().

Crea un HashMap:

HashMap<String, Integer> inventory = new HashMap<>();
inventory.put("Laptop", 10);
inventory.put("Mouse", 50);
inventory.put("Keyboard", 30);

Iterar usando entrySet():

for (Map.Entry<String, Integer> entry : inventory.entrySet()) {
   System.out.println("Product: " +
   entry.getKey() + ", Quantity: " +
   entry.getValue());
}
// Product: Laptop, Quantity: 10
// Product: Mouse, Quantity: 50
// Product: Keyboard, Quantity: 30
challenge icon

Desafío

Fácil

Crea un método llamado <strong>printInventoryEntrySet</strong> que acepte un HashMap (con nombres de productos como claves y cantidades como valores) a partir de una cadena JSON leída mediante un Scanner. Tu método debe iterar sobre el HashMap utilizando el método entrySet() e imprimir cada par clave-valor en el formato:

Product: <product name>, Quantity: <quantity>

Hoja de referencia

Utiliza entrySet() para iterar sobre un HashMap y acceder tanto a las claves como a los valores de manera eficiente:

HashMap<String, Integer> inventory = new HashMap<>();
inventory.put("Laptop", 10);
inventory.put("Mouse", 50);
inventory.put("Keyboard", 30);

for (Map.Entry<String, Integer> entry : inventory.entrySet()) {
   System.out.println("Product: " +
   entry.getKey() + ", Quantity: " +
   entry.getValue());
}

Cada objeto Map.Entry proporciona:

  • entry.getKey() - devuelve la clave
  • entry.getValue() - devuelve el valor

Este enfoque es más eficiente que usar keySet() ya que evita búsquedas adicionales.

Pruébalo tú mismo

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;

public class Main {
    public static void printInventoryEntrySet(HashMap<String, Integer> inventory) {
        // Escribe tu código aquí usando entrySet()
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String inventoryString = scanner.nextLine();

        // Convertir la cadena JSON a HashMap<String, Integer>
        Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
        HashMap<String, Integer> inventory = new Gson().fromJson(inventoryString, mapType);

        printInventoryEntrySet(inventory);
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo