1.Java中的Collection集合總結
Collection
|---List(存儲有序,可重複)
|---ArrayList
底層資料結構是數組,查詢快,增删慢。
線程不安全、效率高
|---Vector
線程安全、效率低。
|---LinkedList
底層資料結構是連結清單,查詢慢,增删快。
線程不安全,效率高
|---Set(存儲無序,元素唯一)
|---HashSet
底層資料結構是哈希表。
依賴hashCode()和equals()兩個方法進行保證元素唯一性,開發中使用開發工具自動生成就好。
|---LinkedHashSet
底層資料結構是連結清單和哈希表
連結清單保證元素有序
哈希表保證元素唯一
|---TreeSet
底層資料結構是紅黑樹。
如何保證元素排序呢?自然排序或者比較器排序。
如何保證元素唯一呢?根據比較結果是否為0來進行判斷。
Map
|---HashMap
底層是數組連結清單,使用hash算法來保證元素存儲位置
|---LinkedHashMap
|---TreeMap
底層是紅黑樹實作。
集合中常見的資料結構總結
ArrayXxx:底層資料結構是數組,查詢快,增删慢
LinkedXxx:底層資料結構是連結清單,查詢慢,增删快
HashXxx:底層資料結構是哈希表。依賴兩個方法:hashCode()和equals()
TreeXxx:底層資料結構是二叉樹。兩種方式排序:自然排序和比較器排序
Collection和Collections的差別?
1.Collection 是單列集合的頂層接口,有兩個子接口List和Set
2.Collections 是針對集合進行操作的工具類,可以對集合進行排序和查找等