能力缺口:为什么你写的排重和遍历总出问题
很多转岗或刚学完 Java 基础语法的人,写业务逻辑时往往卡在数据存取这一步。知道怎么写循环,却搞不懂为什么往集合里塞对象最后全挤在一起;知道用 List,但在需要排重或按键值对查找时,只会写多层嵌套的 for 循环去硬比对。这门课针对的就是这种“语法会写、结构不懂”的缺口。它不讲基础变量和控制流,直接切入 Set 和 Map 两大体系,解决数据如何自动去重、如何按规则排序、如何通过键快速查值的核心问题。如果你目前写代码还在用 ArrayList 硬扛所有场景,或者遇到过自定义对象存进 HashSet 后去重失效,这门课就是来补这个洞的。它适合已经掌握 Java 基础语法和 List 基本操作的读者,完全零基础建议先去补前置语法。
配套练习:先抓排重与排序,再啃 Map 遍历
资料按两大模块组织,建议先看 Set 体系再啃 Map。Set 部分的核心在排重机制和排序规则,不要只当成几个不同的类来背。练习时,重点跟着视频去写自定义类,必须自己手敲 equals 和 hashCode 方法,然后往 HashSet 里塞重复数据,观察排重到底是怎么生效的。TreeSet 部分是难点,自然排序和定制排序对应着 Comparable 和 Comparator 两个接口,练习时建议分别写两组实体类:一组让类自身实现排序逻辑,另一组在外部写比较器传进去。Map 部分建议先搞懂 HashMap 的键值对存取概念,直接上手常用方法去存取数据。最关键的练习在 Map 集合的遍历,不要只看一遍就过,务必把键找值、键值对实体集迭代这几种方式都在本地跑通,对比它们在代码写法上的差异。
学完能独立做什么
看完这套资料并跟着敲完代码后,你应该能脱离死记硬背,根据实际业务场景选对集合。当遇到需要剔除重复数据的场景,你能立刻想到用 HashSet,并且知道如果是自定义对象必须重写基础方法;当遇到需要按特定规则展示数据的场景,你能熟练切到 TreeSet 并写出对应的比较规则。在处理 Map 时,你能独立完成数据的存入、按键查找以及完整的集合遍历,而不是每次都去网上抄迭代代码。更重要的是,面对 Hashtable 或 LinkedHashMap 这些衍生结构,你能清楚它们在元素顺序和线程安全上的区别,不再盲目乱用。
课程目录
1 HashSet的排重方式 (45:05) 2 HashSet的常用方法 (08:04) 3 LinkedHashSet的使用 (05:08) 4 TreeSet的常用方法 (24:06) 5 TreeSet排序方式之自然排序 (27:36) 6 TreeSet排序之定制排序 (23:57) 7 HashMap的概念 (14:12) 8 HashMap的常用方法 (13:17) 9 LinkedHashMap的使用 (04:38) 10 Hashtable的使用 (04:41) 11 TreeMap的使用 (13:16) 12 Map集合的遍历 (20:27)





