1. 程式人生 > >JAVA集合類瞭解嗎?簡單介紹一下?

JAVA集合類瞭解嗎?簡單介紹一下?

JAVA集合類主要分為兩大體系:Collection和Map體系。其中Collection又派生出List、Set、Queue等三大體系。
其中,List主要用來存放一些有序、可重複的元素;主要實現類有:ArrayList、LinkedList、Vector和Stack。
① ArrayList是基於陣列實現的,增刪改比較慢,查詢比較快。
② LinkedList是基於連結串列實現的,與ArrayList正好相反,它的增刪改比較快,查詢比較慢。
③ Vector也是基於陣列實現的,但它是執行緒安全的類,一般不推薦使用。
④ Stack是Vector的派生類,是“棧”資料結構的應用,具有後進顯出的特點,也是執行緒安全的,一般不推薦使用,因為效率比較低。(那麼在多執行緒環境中,如何保證執行緒安全那?通過程式碼來保證同步)
Set

主要用來存放一些無序、不可重複的元素。主要實現類有:HashSet、TreeSet、LinkedHashSet。
① HashSet按照Hash演算法來儲存集合元素,具有很好的存取和查詢效能,常用。
② TreeSet是SortedSet介面的實現類,採用紅黑樹資料結構儲存集合元素,可以保證集合元素處於有序狀態,不是元素插入順序,而是元素實際大小資料。
③ LinkedHashSet是HashSet的子類,根據Hash值決定元素存放位置,同時使用連結串列維護元素次序,以插入順序儲存元素。效能低於HashSet,但是迭代訪問Set裡全部元素時具有很好的效能。
Queue是基於佇列實現的,通常採用先進先出儲存元素。主要實現類有PriorityQueue、ArrayDeque實現類。
① PriorityQueue 標準的佇列實現類,按照元素實際大小重新排序儲存。最後取出的是最小元素,而不是最先插入的元素。
② ArrayDeque 基於陣列實現的雙端佇列。
Map
儲存的鍵值對陣列。主要實現類有HashMap、HashTable、LinkedHashMap.
① HashMap 非執行緒安全類,可以使用Null作為鍵或值。
② HashTable 執行緒安全類,不能使用Null作為鍵或值。
③ LinkedHashMap.是HashMap的子類。