Menu
CoddyTech

用 entrySet() 遍历

本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 18 课,共 59 课。

使用 entrySet() 进行迭代,意味着从 HashMap 中获取一组 Map.Entry 对象。每个 Map.Entry 都提供键及其对应的值,因此效率更高,因为这样可以避免使用 keySet() 时所需的额外查找。

创建一个 HashMap:

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

使用 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: 30
challenge icon

挑战

简单

创建一个名为 printInventoryEntrySet 的方法,该方法接收一个从 Scanner 读取的 JSON 字符串,并将其转换为 HashMap(产品名称作为键,数量作为值)。你的方法应使用 entrySet() 方法遍历 HashMap,并按以下格式打印每个键值对:

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

亲手试试

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) {
        // 在这里使用 entrySet() 编写你的代码
    }

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

        // 将 JSON 字符串转换为 HashMap<String, Integer>
        Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
        HashMap<String, Integer> inventory = new Gson().fromJson(inventoryString, mapType);

        printInventoryEntrySet(inventory);
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Java 在线编译器