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é : 30Défi
FacileCré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);
}
}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
1Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments des tableaux 2DBoucles imbriquées avec les tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliersTableaux 3D et au-delàMotifs courants des tableaux 2DRécapitulatif - Tout sur les tableaux4HashSet Partie 1
Qu'est-ce qu'un HashSet ?Ajouter un ÉlémentSupprimer un ÉlémentVérifier si un Élément ExisteVide et TailleVider et ClonerRécapitulatif - HashSet7Gestion des erreurs de base
Bases du try-catchBloc finallyLever des exceptionsExceptions personnalisées2HashMap Partie 1
Qu'est-ce qu'une HashMap ?Déclarer une HashMapAccéder aux ValeursVérifier si une Clé ExisteModifier les DictionnairesRécapitulatif - HashMap3HashMap Partie 2
Méthodes HashMapItérer avec keySet()Itérer avec entrySet()HashMap imbriquéRécapitulatif - Gérer l'entrepôtRécapitulatif - Opérations HashMap6Flux de contrôle avancé
Instructions étiquetéesExpression switchAppariement de motifsClauses de gardeRécapitulatif - Flux de contrôle9Projet - Compteur de Mots Uniques
Entrée de Texte et StockageTraitement des Mots