渐进式编程课
Java 目录
第 17 课2026.09.22

区分课程键不存在与键存在但备注值为 null。

第 17 课:检查 record 键是否存在

  • 日期:2026-09-22
  • 课程序号:第 17 课
  • 知识点:Map.containsKey

用途或适用场景

区分课程键不存在与键存在但备注值为 null。

核心概念

containsKey 按键的相等语义检查映射是否存在;record 的组件值相同即可匹配。它只查询,不修改 Map。

最小代码或操作示例

java
public class Main {
  record Lesson(String title, int minutes) {}
  public static void main(String[] args) {
    var notes = new java.util.HashMap<Lesson, String>();
    notes.put(new Lesson("Java", 5), "已读");
    System.out.println(notes.containsKey(new Lesson("Java", 5))); // true
  }
}

3~5 分钟练习

改用 new Lesson("Java", 10) 查询是否存在。

参考答案

输出 false;组件值改变后是另一个键。

与上一课的联系

沿用第 16 课的 Lesson record、notes 与“已读”备注;本课只新增 containsKey 查询;完成后下一课可移除旧键并放入新键。

时效校验

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

官方参考