JAVA面試基礎篇(JAVA集合)(一)

一 前言

本次重新撰寫技術類文章,不爲別的,只爲整理自己日常所學,亦爲了大家共同交流努力的目的。文章以面試爲目的,故不在贅述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兩種操作方式

 

 

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