学完就能选对集合:Collection管单列(List有序可重、Set无序唯一、Queue队列行为),Map管双列键值对(键唯一、值可重);核心六实现类覆盖90%场景——ArrayList查多改少、LinkedList头尾增删快、HashSet去重快、TreeSet自动排序、HashMap最常用、LinkedHashMap保序。

直接按“接口→实现→场景”三层推进,不堆概念,学完就能选对集合。
先理清两大主干:Collection 和 Map
Collection 管单列数据(一个值一个值存),Map 管双列数据(键值对)。别一上来就背类名,先盯住这两个根接口:
- Collection 下分三类:List(有序可重)、Set(无序唯一)、Queue(队列行为)
- Map 不继承 Collection,它自己一套逻辑:键不能重复,值可以重复,核心是“用 key 找 value”
- 所有常用集合都在 java.util 包里,不需要额外引入
按使用频率锁定核心实现类
初学不用全记,先掌握这六个,覆盖 90% 场景:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
- ArrayList:查多改少 → 用户列表、日志缓存
- LinkedList:频繁头尾增删 → 消息队列缓冲、栈/队列模拟
- HashSet:去重 + 快速判断存在 → 订单号去重、黑名单校验
- TreeSet:既要唯一又要排序 → 排行榜、时间范围筛选
- HashMap:最常用键值结构 → 配置加载、用户 session 缓存
- LinkedHashMap:需要记住插入或访问顺序 → LRU 缓存、导出字段顺序控制
边学边验证底层差异
光看文档容易迷,动手比对关键操作耗时:
立即学习“Java免费学习笔记(深入)”;
- 用 ArrayList.get(5000) 和 LinkedList.get(5000) 对比——前者秒出,后者明显卡顿
- 往 ArrayList 中间位置(比如 index=1000)连续 add,再对比 LinkedList.add(1000, x) ——后者快得多
- 插入 10 万个字符串进 HashSet 和 TreeSet,观察耗时和最终输出顺序
用真实小任务驱动练习
拒绝空跑 demo,每个类学完立刻写一行能落地的代码:
- 读取一批订单 ID,用 HashSet 去重后统计数量
- 解析日志行,把错误码和出现次数存进 HashMap
,再按次数倒序输出 - 维护一个最近搜索关键词列表,限制最多 10 条,新词放最前,超量删最后——用 LinkedHashSet 或手动管理 ArrayList

















