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: 30Desafío
FácilCrea 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 claveentry.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);
}
}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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de Palabras