在 Java 集合框架的宏伟建筑中,List 解决了“有序”与“重复”的问题,而 Set 和 Map 则分别填补了“去重”与“映射”的关键空缺。本课程《从零开始 JAVAse 进阶之路之 Set 和 Map》旨在带你深入理解这两大核心接口及其实现类,从底层逻辑到实战应用,构建完整的知识闭环。

课程开篇聚焦于 Set 接口,首先深入剖析 HashSet。作为最常用的集合之一,HashSet 的排重机制是本章的基石。你需要理解它并非简单地比较对象本身,而是依赖 `hashCode()` 与 `equals()` 方法的协同工作:先通过哈希值快速定位桶位置,再通过 equals 方法确认元素是否真正重复。掌握这一原理,才能避免在实际开发中因重写不当导致的“重复存入”或“查找失败”等隐蔽 Bug。随后,我们将学习 HashSet 的常用增删改查方法,并引出 LinkedHashSet。它与 HashSet 的区别在于引入了链表结构,能够保持元素的插入顺序,适用于需要记录访问历史的场景。

进阶部分则聚焦于 TreeSet,它展示了 Set 集合的另一种形态——排序。课程将详细讲解自然排序(实现 Comparable 接口)与定制排序(使用 Comparator 接口)两种方式。自然排序适合元素自身具备明确比较逻辑的场景,而定制排序则提供了极大的灵活性,允许你在不修改类源码的情况下动态调整排序规则。理解这两种排序方式的区别与应用场景,是写出高质量 Java 代码的关键一步。

课程的后半程转入 Map 集合的学习。Map 是键值对(Key-Value)的映射容器,HashMap 作为其最核心的实现类,以其高效的存取性能成为日常开发的首选。我们将逐一拆解 HashMap 的常用 API,包括 put、get、containsKey 等,并探讨其底层哈希表的扩容机制与线程安全性问题。在此基础上,LinkedHashMap 和 Hashtable 将作为对比案例出现:前者保留插入顺序,后者则是早期的线程安全实现,虽已逐渐被 ConcurrentHashMap 取代,但其历史地位与特性仍需知晓。TreeMap 同样基于红黑树实现,支持按键的自然排序或定制排序,在需要有序遍历键的场景中大放异彩。

最后,课程专门安排了 Map 集合遍历的教学。Map 没有直接的迭代器,因此我们需要掌握 Entry 集、key 集以及 Lambda 表达式等多种遍历方式。理解不同遍历方式的性能差异与适用场景,能帮助你根据业务需求选择最优解。通过本课学习,你不仅能熟练掌握 Set 和 Map 的用法,更能建立起对 Java 集合体系整体架构的深刻洞察,为后续学习并发编程与框架源码打下坚实基础。

课程目录

课程目录12 集
  • 1 HashSet的排重方式 (45:05).mp4
  • 2 HashSet的常用方法 (08:04).mp4
  • 3 LinkedHashSet的使用 (05:08).mp4
  • 4 TreeSet的常用方法 (24:06).mp4
  • 5 TreeSet排序方式之自然排序 (27:36).mp4
  • 6 TreeSet排序之定制排序 (23:57).mp4
  • 7 HashMap的概念 (14:12).mp4
  • 8 HashMap的常用方法 (13:17).mp4
  • 9 LinkedHashMap的使用 (04:38).mp4
  • 10 Hashtable的使用 (04:41).mp4
  • 11 TreeMap的使用 (13:16).mp4
  • 12 Map集合的遍历 (20:27).mp4