Menu
Coddy logo textTech

Itérer avec entrySet()

Fait partie de la section Logique & Flux du Journey Java de Coddy — leçon 18 sur 59.

L'itération avec entrySet() signifie obtenir un ensemble d'objets Map.Entry depuis la HashMap. Chaque Map.Entry fournit à la fois la clé et sa valeur correspondante, ce qui le rend plus efficace car cela évite la recherche supplémentaire requise avec keySet().

Créer une HashMap :

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

Itérer en utilisant entrySet() :

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

Défi

Facile

Créez une méthode nommée <strong>printInventoryEntrySet</strong> qui accepte une HashMap (avec les noms de produits comme clés et les quantités comme valeurs) à partir d'une chaîne JSON lue via Scanner. Votre méthode doit itérer sur la HashMap en utilisant la méthode entrySet() et afficher chaque paire clé-valeur au format :

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

Aide-mémoire

Utilisez entrySet() pour parcourir une HashMap et accéder efficacement aux clés et aux valeurs :

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());
}

Chaque objet Map.Entry fournit :

  • entry.getKey() - retourne la clé
  • entry.getValue() - retourne la valeur

Cette approche est plus efficace que l'utilisation de keySet() car elle évite des recherches supplémentaires.

Essayez vous-même

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) {
        // Écrivez votre code ici en utilisant entrySet()
    }

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

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

        printInventoryEntrySet(inventory);
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux