Map集合基礎(chǔ)總結(jié)

1. HashMap

  • 創(chuàng)建方式

    • 不指定容量: 默認(rèn)使用16
    • 指定容量:
      容量為用于存儲(chǔ)數(shù)據(jù)的HashTable的主干數(shù)組的長(zhǎng)度
    • 用于存儲(chǔ)數(shù)據(jù)的HashTable,在put( )方法第一次調(diào)用( 第一次存KV鍵值對(duì) ),會(huì)進(jìn)行創(chuàng)建
  • 存儲(chǔ)結(jié)構(gòu)

    基于 哈希表( Hash Table ) 設(shè)計(jì),哈希表的主干結(jié)構(gòu)是數(shù)組
    JDK1.7 :采用 數(shù)組 + 單向鏈表
    JDK1.8 :采用 數(shù)組 + 單向鏈表 + 紅黑樹(shù)

  • 方法

  1. put( 鍵key,值value )
    功能:添加元素至當(dāng)前集合
    傳入:傳入鍵key和與key對(duì)應(yīng)的值value
    返回:添加了元素KV鍵值對(duì)之后的Map集合
  2. get( 指定key )
    功能:通過(guò)指定key獲取對(duì)應(yīng)的value
    傳入:指定的鍵key
    返回:返回與key對(duì)應(yīng)的值value,若傳入集合不存在的key,返回value為null
  3. clear( )
    功能:清空整個(gè)集合(清空所有KV鍵值對(duì))
    返回:空集合
  4. containsKey( 指定key )
    功能:檢查當(dāng)前集合中是否包含指定key
    傳入:要判斷的key
    返回:boolean值,如果存在返回true,否則返回false
  5. containsValue( 指定value )
    功能:檢查當(dāng)前集合中是否包含指定value
    傳入:要判斷的value
    返回:boolean值,如果存在返回true,否則返回false
  6. isEmpty( )
    功能:檢查當(dāng)前集合是否為空
    返回:boolean值,如果為空返回true,否則返回false
  7. keySet( )
    功能:返回當(dāng)前Map集合中所有的key鍵
    返回:將所有的key放入一個(gè)Set集合內(nèi)返回
  8. values( )
    功能:返回當(dāng)前Map集合中所有的value
  9. entrySet( )
    功能:獲取集合內(nèi)所有的鍵值對(duì)
    返回:將所有的鍵值對(duì)放在Set集合內(nèi)返回
  10. getKey( )
    功能:獲取Entry鍵值對(duì)中的key
    返回:返回鍵值對(duì)中的key
  11. getValue( )
    功能:獲取Entry鍵值對(duì)中的value
    返回:返回鍵值對(duì)中的value
  12. getOrDefault( 指定key,默認(rèn)值 )
    功能:按照指定key獲取對(duì)應(yīng)的value
    傳入:指定·的key,指定的默認(rèn)值
    返回:若傳入的key存在,返回對(duì)應(yīng)的value;否則返回默認(rèn)值
  13. putIfAbsent( key,value )
    功能:如果當(dāng)前key不存在,則添加key和value至當(dāng)前集合;否則,執(zhí)行添加操作
    傳入:指定key和指定value
    返回:如果key存在,則返回value;否則返回null
  14. remove( key )
    功能:按照key刪除鍵值對(duì)
    傳入:指定key
    返回:如果key存在,則返回value;否則返回null
  15. replace( key,新value )
    功能:按照key將所對(duì)應(yīng)的value替換成新的value
    傳入:指定的key,和將要替換的新value
    返回:如果key存在,則返回value,不存在,則返回null
  16. replace( key,舊value,新value )
    功能:按照key和舊value,如果與當(dāng)前鍵值對(duì)一致,則用舊value替換;否則不替換
    傳入:指定key,原來(lái)的的舊value,和要替換的新value
    返回:替換成功,則返回true;否則,返回false

2. LinkedHashMap

  • 創(chuàng)建方式
    繼承自HashMap,創(chuàng)建方式與HashMap完全一樣
  • 存儲(chǔ)特點(diǎn)
    有序
  • 存儲(chǔ)結(jié)構(gòu)
    主要存儲(chǔ)結(jié)果與HashMap保持一致
    另外,LinkedHashMap內(nèi)部維護(hù)了一個(gè)雙向鏈表,用于存儲(chǔ)順序

3. TreeMap( 集合類(lèi) )

  • 創(chuàng)建方式
    創(chuàng)建方式與HashMap一致
  • 存儲(chǔ)特點(diǎn)
    默認(rèn)自動(dòng)按照key進(jìn)行排序
  • 存儲(chǔ)結(jié)構(gòu)
    采用紅黑樹(shù)保存數(shù)據(jù),使用Comparetor比較器進(jìn)行比較,可以進(jìn)行升序存儲(chǔ)
  • 方法
  1. lowerKey( key )
    功能:找到小于指定key的一個(gè)key
    傳入:指定的鍵key
    返回:如果找到,則返回key;如果沒(méi)有找到,則返回null

  2. lowerEntry( key )
    功能:找到小于指定key的一個(gè)Entry鍵值對(duì)
    傳入:指定的鍵key
    返回:如果找到,則返回對(duì)應(yīng)的鍵值對(duì)Entry;如果沒(méi)有找到,則返回null

  3. floorKey( key )
    功能:找到小于等于指定key的一個(gè)key
    傳入:指定的鍵key
    返回:如果找到,則返回該key;如果沒(méi)有找到,則返回小于該key的第一個(gè)key

  4. floorEntry( key )
    功能:找到小于等于指定key的一個(gè)Entry鍵值對(duì)
    傳入:指定的鍵key
    返回:如果找到,則返回該key對(duì)應(yīng)的鍵值對(duì)Entry;如果沒(méi)有找到,則返回小于該key的第一個(gè)key所對(duì)應(yīng)的Entry鍵值對(duì)

  5. higherKey( key )
    功能:找到小于指定key的一個(gè)key
    傳入:指定的鍵key
    返回:如果找到,則返回小于該key的第一個(gè)key;如果沒(méi)有找到,則返回null

  6. higherEntry( key )
    功能:找到大于指定key的一個(gè)Entry鍵值對(duì)
    傳入:指定的鍵key
    返回:如果找到,則返回大于該key的第一個(gè)key對(duì)應(yīng)的鍵值對(duì)Entry;如果沒(méi)有找到,則返回null

  7. ceilingKey( key )
    功能:找到大于等于指定key的一個(gè)Entry鍵值對(duì)
    傳入:指定的鍵key
    返回:如果找到,則返回該key;如果沒(méi)有找到,則返回大于該key的第一個(gè)key所對(duì)應(yīng)的Entry鍵值對(duì)

  8. ceilingEntry( key )
    功能:找到大于等于指定key的一個(gè)Entry鍵值對(duì)
    傳入:指定的鍵key
    返回:如果找到,則返回該key;如果沒(méi)有找到,則返回大于該key的一個(gè)key對(duì)應(yīng)的Entry鍵值對(duì)

  9. putAll( 其他Map集合 )
    功能:將傳人的“其它Map集合”內(nèi)的所有鍵值對(duì),存入當(dāng)前Map集合
    傳入:要存入的鍵值對(duì)元素的集合
    返回:返回存入后的集合

  10. putIfAbsent( key,value )

    功能:如果當(dāng)前key存在,則不執(zhí)行添加操作key-value的操作;如果當(dāng)前key不存在,則執(zhí)行添加操作key-value的操作
    傳入:要存入的KV鍵值對(duì)
    返回:若執(zhí)行了添加操作,則返回添加后的集合;若沒(méi)有執(zhí)行添加操作,則返回原集合

  11. firstKey( )

    功能:獲取Map集合中的第一個(gè)key
    返回:返回集合中的第一個(gè)key

  12. firstEntry( )
    功能:獲取Map集合中的第一個(gè)key對(duì)應(yīng)的Entry鍵值對(duì)
    返回:返回集合中的第一個(gè)key對(duì)應(yīng)的Entry鍵值對(duì)

  13. lastKey( )
    功能:獲取Map集合中的最后一個(gè)key
    返回:返回集合中的最后一個(gè)key

  14. lastEntry( )
    功能:獲取Map集合中的最后一個(gè)key對(duì)應(yīng)的Entry鍵值對(duì)
    返回:返回集合中的最后一個(gè)key對(duì)應(yīng)的Entry鍵值對(duì)

  15. pollFirstEntry( )
    功能:彈出第一個(gè)鍵值對(duì)元素(彈出后,Map集合中將不存在彈出的元素)
    返回:彈出的鍵值對(duì)元素(集合中的第一個(gè)鍵值對(duì))

  16. pollLastEntry( )

    功能:彈出最后一個(gè)鍵值對(duì)元素(彈出后,Map集合中將不存在彈出的元素)
    返回:彈出的鍵值對(duì)元素(集合中的最后一個(gè)鍵值對(duì))

  17. headMap( 指定key,boolean值 )

    功能:按照指定的key,從Map集合的頭部鍵值對(duì)開(kāi)始截取,截取至指定key之前
    傳入:只傳入指定key,或傳入key和一個(gè)boolean值
    返回:若只傳入key,則返回的頭部子集合中不包含傳入的指定key所對(duì)應(yīng)的KV鍵值對(duì);若傳入key和boolean值true,則返回的頭部子集合中包含傳入的指定key所對(duì)應(yīng)的KV鍵值對(duì)

  18. tailMap( 指定key,boolean值 )

    功能:按照指定的key,從Map集合的尾部鍵值對(duì)開(kāi)始截取,截取至指定key之前
    傳入:只傳入指定key,或傳入key和一個(gè)boolean值
    返回:若只傳入key,則返回的尾部子集合中包含傳入的指定key所對(duì)應(yīng)的KV鍵值對(duì);若傳入key和boolean值false,則返回的頭部子集合中不包含傳入的指定key所對(duì)應(yīng)的KV鍵值對(duì)

  19. subMap( 開(kāi)始key,結(jié)束key)

    功能:按照開(kāi)始key,截取至結(jié)束key
    傳入:開(kāi)始截取的位置key,截取結(jié)束的位置key
    返回:截取后的子集合

  20. subMap( 開(kāi)始key,開(kāi)始key對(duì)應(yīng)的boolean值,結(jié)束key,結(jié)束key對(duì)應(yīng)的boolean值)

    功能:按照開(kāi)始key,截取至結(jié)束key
    傳入:開(kāi)始截取的位置key,開(kāi)始key對(duì)應(yīng)的boolean值,截取結(jié)束的位置key,結(jié)束key對(duì)應(yīng)的boolean值
    返回:截取后的子集合傳入的開(kāi)始key的boolean值為false,結(jié)束key的boolean值為true,則返回子集合中不包含頭部鍵值對(duì)而包含尾部鍵值對(duì);否則,返回結(jié)果相反

  21. remove( key )

    功能:按照key進(jìn)行刪除鍵值對(duì)
    傳入:指定的key
    返回:刪除成功,則返回key對(duì)應(yīng)的鍵值對(duì);刪除失?。╧ey不存在),則返回null

  22. remove( key,value)

    功能:按照KV鍵值對(duì)進(jìn)行刪除鍵值對(duì)
    傳入:指定的KV鍵值對(duì)
    返回:刪除成功,返回true;刪除失?。↘V鍵值對(duì)不存在):返回false

  23. replace( key,新value)

    功能:將指定的key對(duì)應(yīng)的值,替換為新value
    傳入:指定的key,要替換的新value
    返回:返回原來(lái)的被替換的value

  24. replace( key,舊value,新value)
    功能:將指定的KV鍵值對(duì)中的舊value替換成新value
    傳入:指定的key,要被替換的舊value,要替換的新value
    返回:替換成功,返回true;替換失敗(當(dāng)前集合中不存在傳入的KV鍵值對(duì)),返回false

4. HashTable

? 創(chuàng)建方式(默認(rèn)容量為11)、存儲(chǔ)特點(diǎn)、存儲(chǔ)結(jié)構(gòu)與HashMap保持一致
? 與HashMap的區(qū)別:
? 方法都是線程安全的,聲明中都加入了synchronized
? 效率和速度相對(duì)較低

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容