核心痛点:别再背源码,先搞懂容器“存什么”和“怎么取”

Java 开发中,集合框架是后端逻辑的基石,但很多初学者容易陷入“死记硬背源码实现”的误区。这门课并不教你如何背诵 HashMap 的扩容机制或 LinkedList 的节点结构,而是专注于梳理容器在实际业务场景中的选择逻辑。它解决的核心问题是:当面对复杂的业务数据时,如何快速判断该用 List 还是 Set,该用 Map 还是 Collection?学完这套内容,你能独立设计出数据存取方案,不再在项目初期因为选型错误导致后期重构,也能在遇到集合遍历、查找、排序等经典面试题时,直接给出清晰的解题思路,而不是只会堆砌代码。

适合人群:零散基础也能跟上,重点在于“用”而不是“造”

课程由马士兵教育出品,讲师风格以逻辑严密著称,但这套课程特意降低了理论门槛,非常适合基础一般、对 Java 基础语法有了解但尚未系统掌握集合使用的开发者。如果你已经会写简单的增删改查,但面对 ArrayList、HashMap、ConcurrentHashMap 时依然晕头转向,不敢动手,这门课能帮你把知识串联起来。对于想转行做后端的人来说,不需要你具备深厚的数据结构数学背景,课程会结合具体的代码运行结果来讲解差异,让你直观理解不同容器在并发环境、内存占用和性能上的区别,从而建立正确的工程直觉。

学习策略:先看高频场景,动手跑通自定义集合逻辑

资料包里包含了全套视频讲解,建议你不要按目录顺序从头刷到尾,而是采用“场景驱动”的学习路径。首先重点观看关于 List、Set、Map 三大体系分类对比的模块,弄清楚它们各自满足什么约束(比如是否允许重复元素、是否允许 null)。接着,深入学习常用容器的源码实现与性能权衡,这部分是面试和优化的关键。学完理论后,务必结合资料包里的代码示例进行手动复现。不要只看不练,试着自己写一个简单的工具类,封装常用的集合操作,或者修改资料中的代码去测试边界条件(如空指针异常、线程不安全情况)。只有当你亲手跑通了这些逻辑,理解了数据在内存中的流转过程,才能真正掌握这门课的价值,而不是看完视频觉得自己懂了,一写代码就废。

课程目录

├──

01 容器(一)/【www.】 │ ├── [ 40M] ArrayList实现类JDK1.7源码.mp4
 │ ├── [ 21M] ArrayList实现类JDK1.8源码.mp4
 │ ├── [ 30M] Collection接口的常用方法.mp4
 │ ├── [ 15M] Collection接口的遍历方式.mp4
 │ ├── [ 24M] List接口.mp4
 │ ├── [ 16M] 什么是算法什么是数据结构.mp4
 │ ├── [6.4M] 简要集合结构图.mp4
 │ ├── [ 20M] 紧密结构,跳转结构.mp4
 │ ├── [ 10M] 集合的应用场合.mp4
 │ └── [ 16M] 集合的引入.mp4
 ├──

02 容器(二)/【www.】 │ ├── [ 42M] LinkedList实现类的使用.mp4
 │ ├── [ 14M] Vector实现类源码.mp4
 │ ├── [9.1M] 泛型参数存在继承关系的情况.mp4
 │ ├── [ 12M] 泛型受限.mp4
 │ ├── [ 14M] 泛型方法.mp4
 │ ├── [ 25M] 泛型的引入.mp4
 │ ├── [ 26M] 泛型类_泛型接口.mp4
 │ ├── [ 16M] 泛型类_泛型接口细节.mp4
 │ ├── [ 15M] 通配符.mp4
 │ └── [6.0M] 通配符使用的细节.mp4
 ├──

03 容器(三)/【www.】 │ ├── [4.4M] HashSet原理留下的疑问.mp4
 │ ├── [ 18M] HashSet的特点.mp4
 │ ├── [ 18M] HashSet的简要原理.mp4
 │ ├── [ 17M] LinkedList源码解析(JDK1.8).mp4
 │ ├── [ 12M] LinkedList简要底层原理图.mp4
 │ ├── [ 15M] ListIterator迭代器.mp4
 │ ├── [ 13M] Set接口介绍.mp4
 │ ├── [ 34M] 模拟LinkedList源码.mp4
 │ ├── [ 18M] 迭代器具体实现.mp4
 │ └── [ 16M] 面试题iterator()相关.mp4
 ├──

04 容器(四)/ │ ├── [ 18M] HashMap中重要属性.mp4
 │ ├── [ 33M] HashMap的原理简单介绍.mp4
 │ ├── [ 17M] HashMap的构造器.mp4
 │ ├── [ 15M] Hashtable,LinkedHashMap.mp4
 │ ├── [6.7M] LinkedHashSet的使用.mp4
 │ ├── [ 27M] Map接口中常用方法1.mp4
 │ ├── [ 13M] Map接口中常用方法2.mp4
 │ ├── [ 20M] TreeMap的使用.mp4
 │ ├── [ 40M] TreeSet的使用及原理.mp4
 │ └── [ 42M] 比较器的使用.mp4
 ├──

05 容器(五)/ │ ├── [1.6G] HashMap1.8底层原理.mp4
 │ ├── [2.6M] HashMap底层数组的扩容.mp4
 │ ├── [ 34M] HashMap的put方法.mp4
 │ ├── [ 25M] HashMap的两个经典面试题.mp4
 │ └── [5.8M] HashSet底层原理.mp4
 ├──

06 容器(六)/ │ ├── [ 16M] Collections工具类.mp4
 │ ├── [ 16M] Stack.mp4
 │ ├── [ 32M] TreeMap底层源码.mp4
 │ ├── [ 10M] TreeSet底层源码.mp4
 │ └── [ 10M] 数据结构_栈.mp4
 ├──

07 容器(七)/ │ ├── [4.0M] ConcurrentHashMap源码,待更新,占位.mp4
 │ ├── [ 21M] ConcurrentMap并发容器.mp4
 │ ├── [ 22M] 同步类容器.mp4
 │ └── [ 12M] 同步类容器源码解析.mp4
 ├──

08 容器(八)/ │ ├── [ 30M] ArrayBlockingQueue_1.mp4
 │ ├── [ 19M] ArrayBlockingQueue_2.mp4
 │ ├── [ 13M] ArrayBlockingQueue_3.mp4
 │ ├── [ 17M] ArrayBlockingQueue_4.mp4
 │ ├── [ 24M] BlockingQueue介绍.mp4
 │ ├── [ 16M] COW容器引入.mp4
 │ ├── [ 24M] CopyOnWriteArrayList.mp4
 │ ├── [ 12M] CopyOnWriteArraySet.mp4
 │ └── [5.6M] 数据结构:队列.mp4
 ├──

09 容器(九)/ │ ├── [ 35M] DelayQueue.mp4
 │ ├── [ 15M] LinkedBlockingQueue_1.mp4
 │ ├── [ 31M] LinkedBlockingQueue_2.mp4
 │ ├── [ 21M] LinkedBlockingQueue_3.mp4
 │ ├── [ 22M] PriorityBlockingQueue.mp4
 │ ├── [ 29M] SynchronousQueue.mp4
 │ └── [9.9M] 双端队列Deque.mp4