图中可以看出主要分为Collection和Map体系,这里对其分别进行拆解。
Collection体系:
List(列表):
-
List是有序集合,允许重复元素。 -
常见的实现类有ArrayList和LinkedList。 -
ArrayList基于动态数组实现,支持随机访问。 -
LinkedList基于链表实现,支持高效的插入和删除操作。
-
-
Set是不允许重复元素的集合,不保证元素的顺序。 -
常见的实现类有HashSet、TreeSet和LinkedHashSet。 -
HashSet基于哈希表实现,具有快速查找的特性。 -
TreeSet基于红黑树实现,提供了有序的集合。 -
LinkedHashSet继承自HashSet,但保留了元素的插入顺序。
-
-
Queue是一种先进先出(FIFO)的数据结构,常用于任务调度等场景。 -
常见的实现类有LinkedList,PriorityQueue,PriorityBlockingQueue。 -
LinkedList 实现一个先进先出的队列。 -
PriorityQueue 实现了一个优先队列:从队首获取元素时,总是获取优先级最高的元素。非阻塞、非线程安全、无边界。 -
PriorityBlockingQueue:支持优先级排序的无边界阻塞队列实现类,阻塞、线程安全、无边界。
-
-
Deque是一种同时支持在两端进行插入和删除操作的队列,可以作为栈使用。 -
常见的实现类有ArrayDeque,LinkedList,ConcurrentLinkedDeque。 -
ArrayDeque是基于动态数组实现的双端队列,适用于栈(LIFO)和队列(FIFO)两种场景。 -
LinkedList实现了Deque接口,基于双向链表,可用作队列、双端队列、栈,支持所有List接口。 -
ConcurrentLinkedDeque是一个基于链表的无界线程安全双端队列,并发操作高效,适用于多线程环境。基于CAS(Compare-And-Swap)算法实现。
-
Map 体系
Map
接口表示键值对的集合,不允许重复的键,但允许重复的值。-
其主要实现类包含: HashMap,LinkedHashMap,HashTable,TreeMap。 -
HashMap基于哈希表的实现,允许 null
键和null
值。提供常数时间复杂度的基本操作(如插入、删除和访问),但不保证顺序。非线程安全,适用于单线程环境。 -
LinkedHashMap继承自 HashMap
,并且通过双向链表维护插入顺序。除了具有HashMap
的所有特性,还维护了键值对的插入顺序或访问顺序。非线程安全,适用于单线程环境。 -
HashTable基于哈希表的实现,类似于 HashMap
,但不允许null
键和null
值。所有方法都是同步的,因此是线程安全的,但性能相对较低。线程安全,适用于多线程环境。 -
TreeMap基于红黑树实现的有序映射,键值对按键的自然顺序或通过提供的 Comparator
进行排序。提供O(log n)
时间复杂度的基本操作,键值对是有序的,非线程安全,适用于单线程环境。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90881.html