? ?區(qū)別:
? ?Collection:每個位置對應(yīng)一個元素
? ? ? ? --List:存放有序,允許重復(fù)元素,允許元素為null
? ? ? ? ? ? ?--ArrayList:
? ? ? ? ? ? ? ? ?內(nèi)部結(jié)構(gòu)是數(shù)組;
? ? ? ? ? ? ? ? ?初始容量是10;
? ? ? ? ? ? ? ? ?存放有序,元素可以重復(fù)也可以為null;
? ? ? ? ? ? ? ? ?插入和刪除的移動速度慢;動態(tài)擴容1.5倍;
? ? ? ? ? ? ? ? ?線程不安全;
? ? ? ? ? ?--LinkedList:
? ? ? ? ? ? ? ? 內(nèi)部結(jié)構(gòu)是雙向鏈表;
? ? ? ? ? ? ? ? 元素存放有序,允許元素為null,可重復(fù);
? ? ? ? ? ? ? ? 線程不安全;
? ? ? ? ? --Vector :
? ? ? ? ? ? ? ? 內(nèi)部結(jié)構(gòu)是數(shù)組,與ArrayList及其相似;
? ? ? ? ? ? ? ? 初始容量是10;
? ? ? ? ? ? ? ? 線程安全;
? ? ? ? ? ? ? ? 動態(tài)擴容為原來的兩倍;
? ? ? ?--Set:不允許重復(fù)元素
? ? ? ? ? ? --HashSet:
? ? ? ? ? ? ? ? 底層實現(xiàn)是HashMap(),所以不允許重復(fù)元素(對應(yīng)的是key);
? ? ? ? ? ? ? ? 存放無序(根據(jù)hash確定索引位置);
? ? ? ? ? ? ? ? 允許元素為null;
? ? ? ? ? ?--LinkedHashSet:
? ? ? ? ? ? ? ? 繼承HashSet,跟HashSet類似,唯一區(qū)別:存放元素有序;
? ? ? ? ? ? ? ? 遍歷性能比HashSet好,但插入刪除的性能會差點;
? ? ? ? ? ? ??? 允許元素為null;
? ? ? ? ? --TreeSet:
? ? ? ? ? ? ??? 是SortedSet接口的唯一實現(xiàn)類;
? ? ? ? ? ????? 不允許元素重復(fù), 不允許元素為null;
? ? ? ? ? ????? 自動排序元素;
? ?? Map:以Key-Value鍵值對存在
??????? --HashMap:
? ? ? ? ? ?? 數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)和鏈表實現(xiàn)的。Entry[] table,鏈表存儲來解決hash沖突;
? ? ? ? ? ?? 初始容量:16;
? ? ? ? ? ?? 允許key和value為null,key重復(fù)會覆蓋;
? ? ? ? ? ?? 存放無序;線程不安全;
? ? ? ?--LinkedHashMap:
? ? ? ? ? ?? 數(shù)據(jù)結(jié)構(gòu)是雙向鏈表;
? ? ? ? ? ?? 存放元素有序;
? ? ? ? ? ?? 線程不安全
? ? ? --TreeMap:
? ? ? ? ? ?? 不允許Key為null, value可以為null;
? ? ? ? ? ?? 元素默認排序(如:字符串->字典);
? ? ? ? ? ?? 線程不安全