一、集合总览
| 接口 | 实现 | 特点 |
|---|---|---|
| List | ArrayList / LinkedList | 有序可重复 |
| Set | HashSet / TreeSet | 不可重复 |
| Map | HashMap / TreeMap | 键值对 |
| Queue | LinkedList / ArrayDeque | 队列 |
二、选型的直觉
- 随机访问多 → ArrayList;头尾增删多 → LinkedList;
- 查重/去重 → HashSet;需要排序 → TreeSet;
- 键值映射 → HashMap;并发用 ConcurrentHashMap。
三、迭代注意
遍历时用迭代器的 remove() 删除,或 Java 8 的 removeIf,别在 for-each 里直接删(会抛异常)。
集合是日常开发最高频的 API,理解各实现的时间复杂度(ArrayList 查 O(1)、LinkedList 删头 O(1))能少踩坑。