一 前言
本次重新撰写技术类文章,不为别的,只为整理自己日常所学,亦为了大家共同交流努力的目的。文章以面试为目的,故不在赘述java中特别基础的部分,如基本数据类型,线程基本实现等。
java集合分为两大类:一类是Collection下的List,set,queue;另外一类是map。
二 传统的JAVA集合类
1.List的主要实现
|
list的实现 |
特点 |
|
ArrayList |
动态数组,底层基于数组实现,线程不安全 |
|
LinkedList |
双重链表实现的队列,线程不安全 |
|
Stack |
先进后出,基于Vector实现,线程安全 |
|
Vector |
动态数组,线程安全 |
2.Set的主要实现
|
Set的实现 |
特点 |
|
HashSet |
基于HashMap实现,元素不可重复,迭代无序 |
|
TreeSet |
基于TreeMap实现(NavigableSet),元素无序,不重复 |
|
LinkedHashSet |
元素有序,维护一个双重链表以保证有序 |
3.Map的主要实现
|
Map的实现 |
特点 |
|
HashMap |
基于哈希表的 Map 接口的实现,线程不安全 |
|
TreeMap |
基于红黑树(Red-Black tree)的 NavigableMap 实现,该类的<k,v>是有序,线程不安全 |
|
HashTable |
基于哈希表的Map实现,线程安全 |
|
WeakHashMap |
以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。该类是非线程安全的 |
三 JUC集合类
1.List的主要实现
|
list的实现 |
特点 |
|
CopyOnWriteArrayList |
相当于线程安全的ArrayList,它实现了List接口,读写分离,他是线程安全的 |
2.Set的主要实现类
|
Set的实现 |
特点 |
|
CopyOnWriteArraySet |
相当于线程安全的HashSet,内部使用 CopyOnWriteArrayList |
|
ConcurrentSkipListSet |
一个基于 ConcurrentSkipListMap 的可缩放并发 NavigableSet 实现,内部排序是有序的 |
3.Map的主要实现类包括
|
Map的实现 |
特点 |
|
ConcurrentHashMap |
支持获取的完全并发和更新的所期望可调整并发的哈希表 |
|
ConcurrentSkipListMap |
可缩放的并发 ConcurrentNavigableMap 实现,内部排序是有序的Map,该类为线程安全的 |
4.Queue的主要实现类
|
Queue的实现 |
特点 |
|
ArrayBlockingQueue |
一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序 |
|
LinkedBlockingQueue |
一个基于已链接节点的、范围任意的 blocking queue。此队列按 FIFO(先进先出)排序元素 |
|
LinkedBlockingDeque |
一个基于已链接节点的、任选范围的阻塞双端队列 |
|
ConcurrentLinkedQueue |
一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序 |
|
ConcurrentLinkedDeque |
是双向链表实现的无界队列,该队列同时支持FIFO和FILO两种操作方式 |
更多内容关注我哦:

本文详细介绍了Java集合框架的各类实现,包括List、Set、Map和Queue的主要实现方式及其特性,并对比了传统集合类与JUC集合类的区别。

被折叠的 条评论
为什么被折叠?



