HoRain云小助手:个人主页
个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏名称 |
专栏介绍 |
《C语言》 |
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
《网络协议》 |
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
《docker容器精解篇》 |
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
《linux系列》 |
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
《python 系列》 |
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
《试题库》 |
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录
⛳️ 推荐
专栏介绍
一、核心接口
1. Collection 接口(单列数据)
2. Map 接口(键值对)
二、常用实现类
1. List 接口的实现类
2. Set 接口的实现类
3. Queue 接口的实现类
4. Map 接口的实现类
三、工具类
四、并发集合(Java 5+)
五、集合框架关系图
六、选择集合类的原则
Java 集合框架(Java Collections Framework, JCF)是 Java 中用于存储和操作数据结构的核心工具,其核心接口和类可分为以下层次:
Collection
接口(单列数据)List
:有序、可重复的集合(如 ArrayList
)。Set
:无序、不可重复的集合(如 HashSet
)。Queue
:队列,支持先进先出(FIFO)或优先级操作(如 PriorityQueue
)。Map
接口(键值对)HashMap
)。List
接口的实现类类名 | 特点 | 适用场景 |
---|---|---|
ArrayList |
基于动态数组,查询快(O(1)),增删慢(需扩容或移动元素) | 高频查询、随机访问 |
LinkedList |
基于双向链表,增删快(O(1)),查询慢(O(n)) | 高频增删、队列/栈操作 |
Vector |
线程安全的动态数组(已过时,可用 Collections.synchronizedList 替代) |
旧代码兼容 |
Set
接口的实现类类名 | 特点 | 适用场景 |
---|---|---|
HashSet |
基于 HashMap 实现,无序,允许 null |
快速去重 |
LinkedHashSet |
维护插入顺序的 HashSet |
需要保留插入顺序的去重 |
TreeSet |
基于红黑树实现,自然排序或自定义排序 | 需要有序的去重 |
Queue
接口的实现类类名 | 特点 | 适用场景 |
---|---|---|
LinkedList |
可同时作为队列或双端队列(Deque )使用 |
简单队列操作 |
PriorityQueue |
基于堆实现,按优先级排序 | 任务调度(如按优先级处理) |
ArrayBlockingQueue |
线程安全的固定大小队列(基于数组) | 生产者-消费者模型 |
Map
接口的实现类类名 | 特点 | 适用场景 |
---|---|---|
HashMap |
基于哈希表,无序,允许 null Key/Value |
高频键值查询 |
LinkedHashMap |
维护插入顺序或访问顺序的 HashMap |
需要保留顺序的键值存储 |
TreeMap |
基于红黑树,Key 自然排序或自定义排序 | 需要有序的键值存储 |
Hashtable |
线程安全的哈希表(已过时,可用 ConcurrentHashMap 替代) |
旧代码兼容 |
Collections
sort
)、同步化(synchronizedList
)、不可变集合(unmodifiableList
)等。Arrays
sort
)、转换为集合(asList
)等。类名 | 特点 |
---|---|
ConcurrentHashMap |
线程安全的 HashMap (分段锁优化,高并发场景推荐) |
CopyOnWriteArrayList |
写操作时复制新数组,读操作无锁(适合读多写少场景) |
BlockingQueue 系列 |
线程安全的阻塞队列(如 ArrayBlockingQueue 、LinkedBlockingQueue ) |
Collection
├── List
│ ├── ArrayList
│ ├── LinkedList
│ └── Vector(已过时)
├── Set
│ ├── HashSet
│ ├── LinkedHashSet
│ └── TreeSet
└── Queue
├── LinkedList
├── PriorityQueue
└── BlockingQueue 系列
Map
├── HashMap
├── LinkedHashMap
├── TreeMap
├── Hashtable(已过时)
└── ConcurrentHashMap
Set
;允许重复 → List
。TreeSet
/TreeMap
;插入顺序 → LinkedHashSet
/LinkedHashMap
。ArrayList
/HashMap
;高并发 → ConcurrentHashMap
/CopyOnWriteArrayList
。ArrayList
/HashMap
;增删多 → LinkedList
。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!
如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!
Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!