# Java集合概览
作者:Ethan.Yang
博客:https://blog.ethanyang.cn (opens new window)
Java集合框架是Java编程中不可或缺的一部分,它提供了丰富的数据结构和算法实现,帮助开发者高效存储、管理和操作数据。本文将从集合框架的体系结构、核心接口,以及主要接口的特点与适用场景来全面介绍Java集合框架基础知识。
# 一、集合框架体系结构
# 核心接口
Collection:表示一组元素的集合,是List、Set、Queue的父接口。Map:表示键值对映射关系,不继承Collection接口。Iterator:用于遍历集合元素的接口。
# 集合体系结构图

# 二、Collection 与 Map 接口的区别
# Collection接口
- 代表一组元素的集合,元素之间无键值对应关系。
- 主要子接口:List、Set、Queue。
- 适用场景:存储单一元素,如学生名单。
# Map接口
- 代表键值对映射关系,每个键映射一个值。
- 不继承Collection接口。
- 适用场景:存储关联数据,如用户名和密码的映射。
# 根本区别与典型应用
- Collection是“元素”的集合,Map是“键值对”的集合。
- Collection允许重复元素(取决于实现),Map中键不允许重复。
- 应用示例:
- Collection:购物车商品列表。
- Map:配置文件键值对。
# 三、List、Set、Queue 三大接口特点与适用场景
# List接口
- 特点:有序,允许重复元素,支持索引访问。
- 主要实现:
ArrayList:查询快,增删慢(尾部添加快)。LinkedList:增删快,查询慢。Vector:线程安全,但性能较差。
- 适用场景:频繁随机访问、有序且允许重复元素的集合。
# Set接口
- 特点:不允许重复元素,不保证顺序(部分实现例外)。
- 主要实现:
HashSet:无序,基于哈希表。LinkedHashSet:有序(插入顺序)。TreeSet:有序(自然排序或Comparator)。
- 适用场景:去重集合,如唯一用户ID;需要排序的唯一集合。
# Queue接口
- 特点:FIFO或优先级顺序处理元素,支持入队出队。
- 主要实现:
LinkedList:实现Queue接口。PriorityQueue:基于优先级堆实现。ArrayDeque:基于数组的双端队列。
- 适用场景:任务调度、消息传递、线程池任务队列。
List基础 →