第 20 课2026.09.28
检查替换课程键后,当前 Map 实际保存了哪些课程。
第 20 课:遍历 Map 中的课程键
- 日期:2026-09-28
- 课程序号:第 20 课
- 知识点:
Map.keySet()
用途或适用场景
检查替换课程键后,当前 Map 实际保存了哪些课程。
核心概念
keySet() 提供当前键的集合视图;HashMap 不保证遍历顺序,本例只有一条记录。
最小代码或操作示例
java
public class Main {
record Lesson(String title, int minutes) {}
public static void main(String[] args) {
var notes = new java.util.HashMap<Lesson, String>();
var oldKey = new Lesson("Java", 5);
notes.put(oldKey, "已读");
var note = notes.remove(oldKey);
var newKey = new Lesson(oldKey.title(), 10);
notes.put(newKey, note);
System.out.println(notes.size()); // 1
for (var key : notes.keySet()) System.out.println(key.title()); // Java
}
}3~5 分钟练习
在遍历前加入 notes.put(new Lesson("Kotlin", 8), "待读"),观察输出。
参考答案
size() 变成 2;遍历会显示 Java 与 Kotlin,但不能依赖两者顺序。
与上一课的联系
沿用第 19 课的 Lesson、notes、键替换及 size();本课只新增 keySet() 遍历键;下一课可通过每个键读取对应备注。
时效校验
时效校验:2026-09-28(已打开 Java SE 27 Map API 核对 keySet/size 与 HashMap 顺序说明;record 正式版需 Java 16+,未见废弃标记)。