Java 集合框架是用于存储和操作一组对象的体系结构,整体结构可分为两大分支:Collection 接口(存储单个元素的集合)和Map 接口(存储键值对的映射表)。

一、Java 集合框架的整体结构

集合框架的顶层是两个核心接口:​​Collection​​ 和 ​​Map​​,它们之下衍生出多个子接口和实现类,整体结构如下:

  1. Collection 接口(单元素集合)
    存储一系列独立的元素,其子接口主要包括:
  • ​List​​:有序、可重复的集合(如 ​​ArrayList​​、​​LinkedList​​、​​Vector​​)。
  • ​Set​​:无序、不可重复的集合(如 ​​HashSet​​、​​TreeSet​​、​​LinkedHashSet​​)。
  • ​Queue​​:队列(先进先出,如 ​​LinkedList​​、​​PriorityQueue​​)。
  • ​Deque​​:双端队列(两端均可操作,如 ​​ArrayDeque​​)。
  1. Map 接口(键值对映射)
    存储键(Key)和值(Value)的对应关系,键唯一,值可重复,其子接口和实现类包括:
  • ​HashMap​​:基于哈希表的无序映射(JDK 8 后引入红黑树优化)。
  • ​TreeMap​​:基于红黑树的有序映射(按键排序)。
  • ​LinkedHashMap​​:有序的哈希映射(保留插入顺序或访问顺序)。
  • ​Hashtable​​:线程安全的哈希映射(古老类,已被 ​​ConcurrentHashMap​​ 替代)。
二、Collection 和 Map 接口的核心区别

区别维度

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 集合框架的基础,覆盖了大多数数据存储和操作场景。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐