標籤:特性 數學 lis list dHash cti 紅/黑樹狀結構 鏈表 自己
根據《java編程思想》裡面的說法,java集合又叫容器,按照單槽和雙槽分為兩類,Collection和Map,這兩個都是介面。
一、Collection
Collection下面又分了三個子介面,分別是Set,List和Queue,他們的特性分別是:
1.Set:元素唯一,即Set中的元素永遠不可能重複,跟數學中的集合概念是一樣的。它的所有實作類別都有相同的特徵。
主要實作類別有三個:HashSet,LinkedHashSet,TreeSet
- HashSet的底層實現是HashMap中的key,因此它的特點是無序不重複;
- LinkedHashSet底層實現是LinkedHashMap,特點是元素變得有序了。這裡的有序指遍曆順序和插入順序相同。
- TreeSet的底層實現是TreeMap,也是有序的,這裡的有序指按照元素本身的大小排序,對於Integer、String,本身已經實現了Comparable介面,所以他們是可比較的。開發人員自訂的對象,需要自己實現Comparable介面,以方便程式執行元素的比較。
2.List:有序,List是有序可重複的,這裡的有序也是只遍曆順序和插入順序相同。最常用的實作類別:
- ArrayList底層實現是數組,所以查詢效率高,增刪效率低;
- LinkedList底層實現是鏈表,長於插入刪除,查詢效率低。
3.Queue:隊列,特點是先進先出,只允許在隊列前端刪除,隊列後端插入,常用實作類別PriorityQueue.
二、Map
如果說數組和List實現了下標和元素對象的映射,那麼Map就實現了對象和對象之間的映射。
主要實作類別:HashMap,LinkedHashMap和TreeMap
HashMap的底層使用了雜湊表,可以實現快速的尋找。
LinkedHashMap最大的特點是key值有序了,遍曆順序和插入順序相同。
TreeMap的底層是紅/黑樹狀結構,新插入的元素會跟Map中原有元素進行比較,並插入到該插入的位置。TreeMap中對象,必須實現Comparable介面。
java集合架構collection(3)