Collection 和 Collections 的区别
这两个名字很像,但概念完全不同。Collection 是集合类的顶级接口,而 Collections 是一个提供了一系列静态方法的工具类,用来操作或返回集合。
核心接口概览
集合框架主要由 Collection 和 Map 两大体系构成。下面整理了核心接口及其对应的常见实现类:
| 接口 | 说明 | 实体类 |
|---|---|---|
| Collection | 基本接口,定义普通操作,将对象集合当作独立单元处理 | - |
| Set | 扩展 Collection,维护元素集合(通常无序) | HashSet, LinkedHashSet |
| SortedSet | 扩展 Set,提供按顺序存储的功能 | TreeSet |
| List | 扩展 Collection,存放有序元素序列 | ArrayList, Vector, LinkedList |
| Map | 定义键/值 (key-value) 映射关系维护的操作 | HashMap, Hashtable, LinkedHashMap |
| SortedMap | 扩展 Map,针对以键序排列存放的映射 | TreeMap |
实现类特性对比
实际开发中,选择哪个实现类取决于对重复项、顺序及底层数据结构的需求:
| 实体集合/映射 | 接口 | 重复项 | 有序/排序 | 元素调用方法 | 实现类数据结构 |
|---|---|---|---|---|---|
| HashSet | Set | 元素唯一 | 无顺序 | equals(), hashCode() | Hash 表 |
| LinkedHashSet | Set | 元素唯一 | 插入顺序 | equals(), hashCode() | Hash 表和双向链表 |
| TreeSet | SortedSet | 元素唯一 | 排序 | equals(), compareTo() | 平衡树 |
| ArrayList | List | 可以重复 | 插入顺序 | equals() | 可调大小数组 |
| LinkedList | List | 可以重复 | 插入顺序 | equals() | 链表 |
| Vector | List | 可以重复 | 插入顺序 | equals() | 可调大小数组 |
| HashMap | Map | 键唯一 | 无顺序 | equals(), hashCode() | Hash 表 |


