2026-05-27 Java集合框架:List、Set、Map一课通
背景
借书系统升级——LibraryService 增加 List<Item> items 书架,用集合框架统一管理所有馆藏。
List:有序可重的书架
1 | |
有索引、按插入顺序排列、允许重复。
for-each + break vs forEach + lambda:需要找到目标就早退时用 for-each,对所有元素统一操作时用 forEach。
Set:自动去重
1 | |
无索引、不允许重复。去重依赖于 equals() 和 hashCode():
- String 字面量在常量池,相同内容的两个变量指向同一对象 → Set 正确去重
new Book()在堆上每次创建新对象,未重写equals()前按地址比较 → 同名同作者的两个 Book 都能进 Set
Map:键值对,靠 key 一步定位
1 | |
- 键不可重复,后续 put 相同 key 会覆盖旧值
- 适合用唯一标识快速查找对象的场景
对比
| 集合 | 有序 | 可重复 | 有索引 | 场景 |
|---|---|---|---|---|
| List | ✅ | ✅ | ✅ | 按序存取 |
| Set | ❌ | ❌ | ❌ | 去重 |
| Map | ❌ | key不可重 | ❌ | 按键查找 |
2026-05-27 Java集合框架:List、Set、Map一课通
http://example.com/2026/05/27/2026-05-27 Java集合框架:List、Set、Map一课通/