Mit entrySet() iterieren
Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy — Lektion 18 von 59.
Iterieren mit entrySet() bedeutet, eine Menge von Map.Entry-Objekten aus der HashMap zu erhalten. Jeder Map.Entry liefert sowohl den Schlüssel als auch den zugehörigen Wert, was es effizienter macht, da die zusätzliche Suche vermieden wird, die bei keySet() erforderlich ist.
Erstellen Sie eine HashMap:
HashMap<String, Integer> inventory = new HashMap<>();
inventory.put("Laptop", 10);
inventory.put("Mouse", 50);
inventory.put("Keyboard", 30);Iterieren Sie mit 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: 30Aufgabe
EinfachErstellen Sie eine Methode namens <strong>printInventoryEntrySet</strong>, die eine HashMap (mit Produktnamen als Schlüsseln und Mengen als Werten) aus einem über einen Scanner gelesenen JSON-String akzeptiert. Ihre Methode sollte die HashMap mithilfe der Methode entrySet() durchlaufen und jedes Schlüssel-Wert-Paar im folgenden Format ausgeben:
Product: <product name>, Quantity: <quantity>Spickzettel
Verwenden Sie entrySet(), um über eine HashMap zu iterieren und effizient auf sowohl Schlüssel als auch Werte zuzugreifen:
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());
}Jedes Map.Entry-Objekt bietet:
entry.getKey()– gibt den Schlüssel zurückentry.getValue()– gibt den Wert zurück
Dieser Ansatz ist effizienter als die Verwendung von keySet(), da er zusätzliche Suchvorgänge vermeidet.
Probier es selbst
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) {
// Schreibe deinen Code hier unter Verwendung von entrySet()
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String inventoryString = scanner.nextLine();
// Konvertiere JSON-String in HashMap<String, Integer>
Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
HashMap<String, Integer> inventory = new Gson().fromJson(inventoryString, mapType);
printInventoryEntrySet(inventory);
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen der 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysZusammenfassung - 2D-ArraysMatrixaddition & SubtraktionJagged Arrays3D-Arrays und darüber hinausGängige 2D-Array-MusterZusammenfassung - Alles über Arrays2HashMap Teil 1
Was ist eine HashMap?Eine HashMap deklarierenWerte abrufenPrüfen, ob ein Schlüssel existiertWörterbücher modifizierenZusammenfassung - HashMap3HashMap Teil 2
HashMap-MethodenMit keySet() iterierenMit entrySet() iterierenVerschachtelte HashMapZusammenfassung - Lager verwaltenZusammenfassung - HashMap-Operationen6Erweiterter Steuerungsfluss
Beschriftete AnweisungenSwitch-AusdruckMusterabgleichSchutzklauselnZusammenfassung - Steuerungsfluss9Projekt - Einzigartiger Wortzähler
Texteingabe und SpeicherungWortverarbeitung