集合類源碼(一)概述

一個簡單知識點,List和Set都是繼承Collection接口,HashMap實現了Map接口,而這兩個頂級接口的實現類都有哪些呢?

Collection<E>

子接口:BlockingDeque<E>, BlockingQueue<E>, Deque<E>, List<E>, NavigableSet<E>, Queue<E>, Set<E>, SortedSet<E>, TransferQueue<E>

BlockingDeque<E>【雙向阻塞隊列】

實現類:LinkedBlockingDeque

BlockingQueue<E>【阻塞隊列】

實現類:ArrayBlockingQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedTransferQueue, PriorityBlockingQueue, SynchronousQueue

Deque<E>【雙向隊列】

實現類:ArrayDeque, ConcurrentLinkedDeque, LinkedBlockingDeque, LinkedList

List<E>【有序列表】

實現類:AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector

NavigableSet<E>【SortedSet的擴展】

實現類:ConcurrentSkipListSet, TreeSet

Queue<E>【隊列】

實現類:AbstractQueue, ArrayBlockingQueue, ArrayDeque, ConcurrentLinkedDeque, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedList, LinkedTransferQueue, PriorityBlockingQueue, PriorityQueue, SynchronousQueue

Set<E>【集合】

實現類:AbstractSet, ConcurrentHashMap.KeySetView, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet

SortedSet<E>【有序集合】

實現類:ConcurrentSkipListSet, TreeSet

TransferQueue<E>【一個BlockingQueue,其中生產者可以等待消費者接收元素】

實現類:LinkedTransferQueue

結構圖:

=======================================================================================================================================

Map<K,V>

子接口:Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, NavigableMap<K,V>, SortedMap<K,V>
實現類:AbstractMap<K,V>, Hashtable<K,V>, LinkedHashMap<K,V>

Bindings【一個key爲string類型的key/value映射類型】

實現類:SimpleBindings

ConcurrentMap<K,V>【線程安全Map】

實現類:ConcurrentHashMap, ConcurrentSkipListMap

ConcurrentNavigableMap<K,V>【支持NavigableMap操作的ConcurrentMap】

實現類:ConcurrentSkipListMap

NavigableMap<K,V>【SortedMap的擴展】

實現類:ConcurrentSkipListMap, TreeMap

SortedMap<K,V>【有序Map】

實現類:ConcurrentSkipListMap, TreeMap

AbstractMap<K,V>【抽象Map】

實現類:ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, IdentityHashMap, TreeMap, WeakHashMap

Hashtable<K,V>【線程安全Map】

實現類:Properties, UIDefaults

接下來的文章會從功能、原理、優缺點三個方面來闡述上述所有實現類

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章