渐进式编程课
Java 目录
第 19 课2026.09.24

替换课程键后确认备注没有被复制成两条。

第 19 课:核对替换后的 Map 大小

  • 日期:2026-09-24
  • 课程序号:第 19 课
  • 知识点:Map.size

用途或适用场景

替换课程键后确认备注没有被复制成两条。

核心概念

size() 返回当前映射条目数;先移除旧键再加入新键后,数量仍应为 1。

最小代码或操作示例

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
  }
}

3~5 分钟练习

暂时注释 notes.remove(oldKey),再运行并比较数量。

参考答案

输出 2;旧键还在,新键是另一条映射。

与上一课的联系

直接沿用第 18 课的 oldKey、newKey 和移除再放入的流程;本课只新增 size() 核对条目数;完成后下一课可按键遍历并显示所有课程备注。

时效校验

时效校验:2026-09-24(Java SE 27 Map API 与 dev.java Records;size、remove、put 未见废弃标记;record 正式版最低 Java 16)。

官方参考