
Java 集合框架是用于存储和操作一组对象的体系结构,整体结构可分为两大分支:Collection 接口(存储单个元素的集合)和Map 接口(存储键值对的映射表)。
集合框架的顶层是两个核心接口:Collection 和 Map,它们之下衍生出多个子接口和实现类,整体结构如下:
List:有序、可重复的集合(如 ArrayList、LinkedList、Vector)。Set:无序、不可重复的集合(如 HashSet、TreeSet、LinkedHashSet)。Queue:队列(先进先出,如 LinkedList、PriorityQueue)。Deque:双端队列(两端均可操作,如 ArrayDeque)。HashMap:基于哈希表的无序映射(JDK 8 后引入红黑树优化)。TreeMap:基于红黑树的有序映射(按键排序)。LinkedHashMap:有序的哈希映射(保留插入顺序或访问顺序)。Hashtable:线程安全的哈希映射(古老类,已被 ConcurrentHashMap 替代)。区别维度 | Collection 接口 | Map 接口 |
|---|---|---|
存储内容 | 存储单个元素(如 String、Integer) | 存储键值对(Key-Value 映射) |
核心方法 | 操作元素:add()、remove()、contains() 等 | 操作键值对:put(key, value)、get(key)、remove(key) 等 |
元素唯一性 | 取决于子接口(List 可重复,Set 不可重复) | 键(Key)必须唯一,值(Value)可重复 |
遍历方式 | 通过迭代器(Iterator)或增强 for 循环遍历元素 | 遍历键(keySet())、值(values())或键值对(entrySet()) |
数据模型 | 线性/集合模型(元素之间无直接关联) | 映射模型(键和值存在对应关系) |
Collection 是“元素的集合”,适合存储独立的个体元素,强调元素的组织和管理。Map 是“键值对的映射”,适合通过键快速查找值,强调数据之间的关联关系(如字典、缓存)。两者共同构成了 Java 集合框架的基础,覆盖了大多数数据存储和操作场景。