一、簡(jiǎn)介
1.Collection接口下子接口主要有Set、List、Queue接口,Map是單獨(dú)的key-value鍵值對(duì)結(jié)構(gòu)集合
2.Set下主要實(shí)現(xiàn)類是:HashSet,LinkedHashSet,TreeSet
3.List下主要實(shí)現(xiàn)類是:ArrayList,Vector,LinkedList
4.Queue下主要實(shí)現(xiàn)類是:LinkedList ----Queue接口窄化了對(duì)LinkedList的方法的訪問權(quán)限(即在方法中的參數(shù)類型如果是Queue時(shí),就完全只能訪問Queue接口所定義的方法 了,而不能直接訪問 LinkedList的非Queue的方法)
5.Map下主要實(shí)現(xiàn)類是:Hashtable,LinkedHashMap,HashMap,TreeMap
二、說明
一)、List 有序、可重復(fù)
1.ArrayList
優(yōu)點(diǎn): 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢。
缺點(diǎn): 線程不安全,效率高
2.Vector
優(yōu)點(diǎn): 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢。
缺點(diǎn): 線程安全,效率低
3.LinkList
優(yōu)點(diǎn): 底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快。
缺點(diǎn): 線程不安全,效率高
二)、Set 無序、唯一
1.HashSet
底層數(shù)據(jù)結(jié)構(gòu)是哈希表。(無序,唯一)
元素唯一性:使用hashCode()和equals()兩個(gè)方法
2.LinkedHashSet
底層數(shù)據(jù)結(jié)構(gòu)是鏈表和哈希表。(FIFO插入有序,唯一)
由鏈表保證元素有序
由哈希表保證元素唯一
3.TreeSet
底層數(shù)據(jù)結(jié)構(gòu)是紅黑樹。(唯一,有序)
保證元素排序:自然排序比較器排序
元素唯一性:根據(jù)比較的返回值是否是0來決定
三)、Map接口
1.三個(gè)比較重要的實(shí)現(xiàn)類:
分別是HashMap、TreeMap和HashTable。
2.三者比較區(qū)別
TreeMap是有序的,HashMap和HashTable是無序的。
Hashtable的方法是同步的,HashMap的方法不是同步的。這是兩者最主要的區(qū)別。
Hashtable是線程安全的,HashMap不是線程安全的。
HashMap效率較高,Hashtable效率較低。
Hashtable不允許null值,HashMap允許null值(key和value都允許)
父類不同:Hashtable的父類是Dictionary,HashMap的父類是AbstractMap
三、總結(jié)
最后用一張圖做總結(jié)







暫無評(píng)論,快來評(píng)論吧!