1. HashMap
-
創(chuàng)建方式
- 不指定容量: 默認(rèn)使用16
-
指定容量:
容量為用于存儲數(shù)據(jù)的HashTable的主干數(shù)組的長度 - 用于存儲數(shù)據(jù)的HashTable骇窍,在put( )方法第一次調(diào)用( 第一次存KV鍵值對 ),會進(jìn)行創(chuàng)建
-
存儲結(jié)構(gòu)
基于 哈希表( Hash Table ) 設(shè)計锥余,哈希表的主干結(jié)構(gòu)是數(shù)組
JDK1.7 :采用 數(shù)組 + 單向鏈表
JDK1.8 :采用 數(shù)組 + 單向鏈表 + 紅黑樹 方法
- put( 鍵key腹纳,值value )
功能:添加元素至當(dāng)前集合
傳入:傳入鍵key和與key對應(yīng)的值value
返回:添加了元素KV鍵值對之后的Map集合 - get( 指定key )
功能:通過指定key獲取對應(yīng)的value
傳入:指定的鍵key
返回:返回與key對應(yīng)的值value,若傳入集合不存在的key,返回value為null - clear( )
功能:清空整個集合(清空所有KV鍵值對)
返回:空集合 - containsKey( 指定key )
功能:檢查當(dāng)前集合中是否包含指定key
傳入:要判斷的key
返回:boolean值嘲恍,如果存在返回true足画,否則返回false - containsValue( 指定value )
功能:檢查當(dāng)前集合中是否包含指定value
傳入:要判斷的value
返回:boolean值,如果存在返回true佃牛,否則返回false - isEmpty( )
功能:檢查當(dāng)前集合是否為空
返回:boolean值淹辞,如果為空返回true,否則返回false - keySet( )
功能:返回當(dāng)前Map集合中所有的key鍵
返回:將所有的key放入一個Set集合內(nèi)返回 - values( )
功能:返回當(dāng)前Map集合中所有的value - entrySet( )
功能:獲取集合內(nèi)所有的鍵值對
返回:將所有的鍵值對放在Set集合內(nèi)返回 - getKey( )
功能:獲取Entry鍵值對中的key
返回:返回鍵值對中的key - getValue( )
功能:獲取Entry鍵值對中的value
返回:返回鍵值對中的value - getOrDefault( 指定key俘侠,默認(rèn)值 )
功能:按照指定key獲取對應(yīng)的value
傳入:指定·的key象缀,指定的默認(rèn)值
返回:若傳入的key存在,返回對應(yīng)的value爷速;否則返回默認(rèn)值 - putIfAbsent( key央星,value )
功能:如果當(dāng)前key不存在,則添加key和value至當(dāng)前集合惫东;否則莉给,執(zhí)行添加操作
傳入:指定key和指定value
返回:如果key存在,則返回value廉沮;否則返回null - remove( key )
功能:按照key刪除鍵值對
傳入:指定key
返回:如果key存在颓遏,則返回value;否則返回null - replace( key废封,新value )
功能:按照key將所對應(yīng)的value替換成新的value
傳入:指定的key州泊,和將要替換的新value
返回:如果key存在,則返回value漂洋,不存在遥皂,則返回null - replace( key,舊value刽漂,新value )
功能:按照key和舊value演训,如果與當(dāng)前鍵值對一致,則用舊value替換贝咙;否則不替換
傳入:指定key样悟,原來的的舊value,和要替換的新value
返回:替換成功庭猩,則返回true窟她;否則,返回false
2. LinkedHashMap
- 創(chuàng)建方式
繼承自HashMap蔼水,創(chuàng)建方式與HashMap完全一樣 - 存儲特點(diǎn)
有序 - 存儲結(jié)構(gòu)
主要存儲結(jié)果與HashMap保持一致
另外震糖,LinkedHashMap內(nèi)部維護(hù)了一個雙向鏈表,用于存儲順序
3. TreeMap( 集合類 )
- 創(chuàng)建方式
創(chuàng)建方式與HashMap一致 - 存儲特點(diǎn)
默認(rèn)自動按照key進(jìn)行排序 - 存儲結(jié)構(gòu)
采用紅黑樹保存數(shù)據(jù)趴腋,使用Comparetor比較器進(jìn)行比較吊说,可以進(jìn)行升序存儲 - 方法
lowerKey( key )
功能:找到小于指定key的一個key
傳入:指定的鍵key
返回:如果找到论咏,則返回key;如果沒有找到颁井,則返回nulllowerEntry( key )
功能:找到小于指定key的一個Entry鍵值對
傳入:指定的鍵key
返回:如果找到厅贪,則返回對應(yīng)的鍵值對Entry;如果沒有找到雅宾,則返回nullfloorKey( key )
功能:找到小于等于指定key的一個key
傳入:指定的鍵key
返回:如果找到养涮,則返回該key;如果沒有找到秀又,則返回小于該key的第一個keyfloorEntry( key )
功能:找到小于等于指定key的一個Entry鍵值對
傳入:指定的鍵key
返回:如果找到单寂,則返回該key對應(yīng)的鍵值對Entry;如果沒有找到吐辙,則返回小于該key的第一個key所對應(yīng)的Entry鍵值對higherKey( key )
功能:找到小于指定key的一個key
傳入:指定的鍵key
返回:如果找到,則返回小于該key的第一個key蘸劈;如果沒有找到昏苏,則返回nullhigherEntry( key )
功能:找到大于指定key的一個Entry鍵值對
傳入:指定的鍵key
返回:如果找到,則返回大于該key的第一個key對應(yīng)的鍵值對Entry威沫;如果沒有找到贤惯,則返回nullceilingKey( key )
功能:找到大于等于指定key的一個Entry鍵值對
傳入:指定的鍵key
返回:如果找到,則返回該key棒掠;如果沒有找到孵构,則返回大于該key的第一個key所對應(yīng)的Entry鍵值對ceilingEntry( key )
功能:找到大于等于指定key的一個Entry鍵值對
傳入:指定的鍵key
返回:如果找到,則返回該key烟很;如果沒有找到颈墅,則返回大于該key的一個key對應(yīng)的Entry鍵值對putAll( 其他Map集合 )
功能:將傳人的“其它Map集合”內(nèi)的所有鍵值對,存入當(dāng)前Map集合
傳入:要存入的鍵值對元素的集合
返回:返回存入后的集合-
putIfAbsent( key雾袱,value )
功能:如果當(dāng)前key存在恤筛,則不執(zhí)行添加操作key-value的操作;如果當(dāng)前key不存在芹橡,則執(zhí)行添加操作key-value的操作
傳入:要存入的KV鍵值對
返回:若執(zhí)行了添加操作毒坛,則返回添加后的集合;若沒有執(zhí)行添加操作林说,則返回原集合 -
firstKey( )
功能:獲取Map集合中的第一個key
返回:返回集合中的第一個key firstEntry( )
功能:獲取Map集合中的第一個key對應(yīng)的Entry鍵值對
返回:返回集合中的第一個key對應(yīng)的Entry鍵值對lastKey( )
功能:獲取Map集合中的最后一個key
返回:返回集合中的最后一個keylastEntry( )
功能:獲取Map集合中的最后一個key對應(yīng)的Entry鍵值對
返回:返回集合中的最后一個key對應(yīng)的Entry鍵值對pollFirstEntry( )
功能:彈出第一個鍵值對元素(彈出后煎殷,Map集合中將不存在彈出的元素)
返回:彈出的鍵值對元素(集合中的第一個鍵值對)-
pollLastEntry( )
功能:彈出最后一個鍵值對元素(彈出后,Map集合中將不存在彈出的元素)
返回:彈出的鍵值對元素(集合中的最后一個鍵值對) -
headMap( 指定key腿箩,boolean值 )
功能:按照指定的key豪直,從Map集合的頭部鍵值對開始截取,截取至指定key之前
傳入:只傳入指定key,或傳入key和一個boolean值
返回:若只傳入key度秘,則返回的頭部子集合中不包含傳入的指定key所對應(yīng)的KV鍵值對顶伞;若傳入key和boolean值true饵撑,則返回的頭部子集合中包含傳入的指定key所對應(yīng)的KV鍵值對 -
tailMap( 指定key,boolean值 )
功能:按照指定的key唆貌,從Map集合的尾部鍵值對開始截取滑潘,截取至指定key之前
傳入:只傳入指定key,或傳入key和一個boolean值
返回:若只傳入key,則返回的尾部子集合中包含傳入的指定key所對應(yīng)的KV鍵值對锨咙;若傳入key和boolean值false语卤,則返回的頭部子集合中不包含傳入的指定key所對應(yīng)的KV鍵值對 -
subMap( 開始key,結(jié)束key)
功能:按照開始key酪刀,截取至結(jié)束key
傳入:開始截取的位置key粹舵,截取結(jié)束的位置key
返回:截取后的子集合 -
subMap( 開始key,開始key對應(yīng)的boolean值骂倘,結(jié)束key眼滤,結(jié)束key對應(yīng)的boolean值)
功能:按照開始key,截取至結(jié)束key
傳入:開始截取的位置key历涝,開始key對應(yīng)的boolean值诅需,截取結(jié)束的位置key,結(jié)束key對應(yīng)的boolean值
返回:截取后的子集合傳入的開始key的boolean值為false荧库,結(jié)束key的boolean值為true堰塌,則返回子集合中不包含頭部鍵值對而包含尾部鍵值對;否則分衫,返回結(jié)果相反 -
remove( key )
功能:按照key進(jìn)行刪除鍵值對
傳入:指定的key
返回:刪除成功场刑,則返回key對應(yīng)的鍵值對;刪除失旘秸健(key不存在)牵现,則返回null -
remove( key,value)
功能:按照KV鍵值對進(jìn)行刪除鍵值對
傳入:指定的KV鍵值對
返回:刪除成功屎勘,返回true施籍;刪除失敗(KV鍵值對不存在):返回false -
replace( key概漱,新value)
功能:將指定的key對應(yīng)的值丑慎,替換為新value
傳入:指定的key,要替換的新value
返回:返回原來的被替換的value replace( key瓤摧,舊value竿裂,新value)
功能:將指定的KV鍵值對中的舊value替換成新value
傳入:指定的key,要被替換的舊value照弥,要替換的新value
返回:替換成功腻异,返回true;替換失斦獯А(當(dāng)前集合中不存在傳入的KV鍵值對)悔常,返回false
4. HashTable
? 創(chuàng)建方式(默認(rèn)容量為11)影斑、存儲特點(diǎn)、存儲結(jié)構(gòu)與HashMap保持一致
? 與HashMap的區(qū)別:
? 方法都是線程安全的机打,聲明中都加入了synchronized
? 效率和速度相對較低