CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • equals 与 hashCode 的契约

    JAVA 25 SELF
    等级 29,课时 0
    在本讲我们将讲解如何在 Java 中正确地确定对象相等:运算符 == 比较的是引用(地址),而方法 equals 比较的是内容;为什么 equals/ hashCode 契约对于 HashSet 和 HashMap 这类集合至关重要,以及它与 Comparable 的 compareTo 有何关联。循序渐进的示例、最佳实践以及常见错误解析将帮助你在使用哈希表和可排序集合时避开陷阱。
    可用
  • Objects 类:equals、hashCode、hash 方法

    JAVA 25 SELF
    等级 29,课时 1
    在本讲中,我们拆解“瑞士军刀” java.util.Objects:如何用 Objects.equals 安全比较,使用 Objects.hash 简洁地计算哈希,通过 Objects.compare 将比较委托给比较器,用 Objects.requireNonNull 保证非 null 的值,并在流中使用 Objects.isNull/ Objects.nonNull。我们将展示 equals/ hashCode/ compareTo 的正确实现,剖析实践案例以及在使用 HashMap/ HashSet 时的典型错误。
    可用
  • Comparable 接口:实现与 compareTo

    JAVA 25 SELF
    等级 29,课时 2
    在本讲中,我们通过 Comparable 接口与 compareTo 方法来解析 Java 中对象的“自然顺序”:它的用途、如何正确实现、集合排序如何工作( Collections.sort 与 List.sort)、按多个字段比较、处理 null 值以及与 equals/ hashCode 的一致性。我们还将讨论最佳实践、常见错误,并用 Person 类给出实用示例。
    可用
  • Comparator 接口:创建与使用

    JAVA 25 SELF
    等级 29,课时 3
    在本讲座中,我们讨论何时使用 Comparator 而不是 Comparable, compare(T o1, T o2) 方法的语法与契约;通过 Collections.sort 和 List.sort 对列表进行排序的实践;如何将比较器作为独立类创建、以及通过匿名类和 Lambda 表达式创建。我们还将讲解多级排序、处理 null 值、使用 Collections.binarySearch 进行查找、用 reversed() 反转顺序,以及最佳实践与常见错误(例如为什么应使用 Integer.compare 而非 a - b)。
    可用
  • 在 Java 集合中查找与排序元素

    JAVA 25 SELF
    等级 29,课时 4
    本讲将讲解集合的实用操作:使用 contains、 indexOf、 lastIndexOf 查找元素;通过 for 循环与 break 按条件查找;使用 Collections 求最小值与最大值。我们还会练习用 Collections.sort 与 List.sort 排序列表,使用 Comparator,对 Map 的键值对排序,以及按对象字段排序。最后讨论常见错误:由 List.of 创建的不可变列表、直接尝试排序 Set/ Map、以及不正确的比较器。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym