Menu
Coddy logo textTech

Iterar com entrySet()

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 18 de 59.

Iterar com entrySet() significa obter um conjunto de objetos Map.Entry do HashMap. Cada Map.Entry fornece tanto a chave quanto seu valor correspondente, tornando-o mais eficiente, pois evita a busca extra necessária com keySet().

Crie um HashMap:

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

Itere usando entrySet():

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

Desafio

Fácil

Crie um método chamado <strong>printInventoryEntrySet</strong> que aceita um HashMap (com nomes de produtos como chaves e quantidades como valores) a partir de uma string JSON lida via Scanner. Seu método deve iterar sobre o HashMap usando o método entrySet() e imprimir cada par chave-valor no formato:

Product: <nome do produto>, Quantity: <quantidade>

Folha de consulta

Use entrySet() para iterar sobre um HashMap e acessar tanto as chaves quanto os valores de forma 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 fornece:

  • entry.getKey() - retorna a chave
  • entry.getValue() - retorna o valor

Esta abordagem é mais eficiente do que usar keySet(), pois evita buscas extras.

Experimente você mesmo

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) {
        // Escreva seu código aqui usando entrySet()
    }

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

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

        printInventoryEntrySet(inventory);
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo