學習了java集合,對整體框架有個瞭解
collection:(單列集合)
1.List:有序,可重複
ArrayList--底層數據結構是數組,查詢快,增刪慢,線程不安全,效率高
LinkedList--底層數據結構是鏈表,查詢慢,增刪快,線程不安全,效率高
Vector--底層數據結構是數組,查詢快,增刪慢,線程安全,效率低
2.Set:無序,唯一
HashSet
底層數據結構是哈希表
如何保證元素的唯一性呢?
依賴於兩個方法:hashCode()和equals()
自動生成這兩個方法即可
-LinkedHashSet
底層是哈希表和鏈表
哈希表保證唯一性
鏈表保證元素的有序性
TreeSet
底層數據結構是紅黑樹。
怎樣保證元素的唯一性呢?
通過比較返回值是否是0來決定
怎樣保證元素排序呢?
自然排序
比較器排序
Map(雙列集合)
是一種存儲鍵值對映射的容器類,在Map中鍵可以是任意類型的對象,但不能有重複的鍵,每個鍵都對應一個值
1.HashMap
底層數據結構是哈希表
-LinkedHashMap
底層是哈希表和鏈表2.TreeMap
底層數據結構是紅黑樹。
HashMap和HashTable的區別?
HashMap是非同步的,鍵值允許使用null;
Hashtable是同步的,鍵值不允許使用null