JUC包中集合类可以分为3部分:List和Set、Map以及Queue。
List和Set
JUC集合包中List和Set的实现类有:
- CopyOnWriteArrayList
CopyOnWriteArrayList
相当于线程安全的ArrayList
,它实现了List
接口。 - CopyOnWriteArraySet
CopyOnWriteArraySet
相当于线程安全的HashSet
,它继承于AbstractSet
类。它是基于CopyOnWriteArrayList
实现的。 - ConcurrentSkipListSet
ConcurrentSkipListSet
相当于线程安全的TreeSet
,它继承于AbstractSet
类,并实现了NavigableSet
接口。它是基于ConcurrentSkipListMap
实现的。
Map
JUC集合包中Map的实现类有:
- ConcurrentHashMap
ConcurrentHashMap
相当于线程安全的HashMap
,它继承于AbstractMap
类,并实现了ConcurrentMap
接口。 - ConcurrentSkipListMap
ConcurrentSkipListMap
相当于线程安全的TreeMap
,它继承于AbstractMap
类,并实现了ConcurrentNavigableMap
接口。通过跳表实现的。
Queue
JUC集合包中Queue的实现类有:
- ArrayBlockingQueue
ArrayBlockingQueue
是数组实现的线程安全的有界的阻塞队列,FIFO。 - LinkedBlockingQueue
LinkedBlockingQueue
是单向链表实现的阻塞队列,FIFO。 - LinkedBlockingDeque
LinkedBlockingDeque
是双向链表实现的阻塞队列,FIFO/LIFO - ConcurrentLinkedQueue
ConcurrentLinkedQueue
是单向链表实现的无界队列,FIFO。 - ConcurrentLinkedDeque。
ConcurrentLinkedDeque
是双向链表实现的无界队列,FIFO/LIFO。