1.單列各個集合底層數據結構和基本性質
一.List集合:(有序,元素可以重復)
1.ArrayList集合:
1).底層數據結構是數組,查找快,增刪慢。
2). 線程不安全,效率高
2.Vector集合:
1) 底層數據結構是數組,查詢快,增刪慢
2)線程安全,效率低
3.LinkedList集合:
1) 底層數據結構是鏈表,查詢慢,增刪快
2)線程不安全,效率高
二、Set集合(元素不可重復,元素唯一)
1.Hashset集合:
1) 底層數據結構是哈希表,哈希表依賴兩個方法hascode ()和equals()方法
2)兩個方法的執行順序:
首先判斷hascode()值是否相同
是:繼續執行equals()方法,看其返回值
是true:說明元素重復,不添加
是false:就直接添加元素
否:就直接添加到集合
2.Treeset集合:
1)底層數據結構是二叉樹
2.雙列各個集合底層數據結構和基本性質
1.java中的Map集合是雙列的,Map集合是Map集合家族的根接口,它有HashMap和TreeMap集合兩個子類。
2.Map集合中只對鍵有效,而對值是無效的。
3.子類的數據結構:
Hashmap:底層數據結構是哈希表,Treemap底層數據結構是二叉樹,其性質和Set的底層數據結構一樣。
3、java中的集合的選擇
根據實際需求來選擇合適的集合。
1.單列還是雙列:
2.選擇單列后看元素是否唯一
是:選擇Set集合
看元素是否排序:
是:TreeSet
否:HashSet
否: 選擇List集合
安全性高低:
高:Vector
低:ArrayList 或LinkedList ’
增刪多:LinkedList
查詢多:ArrayList