18.集合框架概述以及底層數(shù)據(jù)結(jié)構(gòu)

Collection接口

  • List有序的 可重復的

    • ArrayList:Object數(shù)組
    • LinkedList: 雙向鏈表
    • Vector: Object數(shù)組
  • Set存儲無序的 不可重復的

    • HashSet:基于 HashMap 實現(xiàn)的,底層采用 HashMap 來保存元素
    • LinkedHashSet:基于LinkedHashMap 實現(xiàn)
    • TreeSet: 紅黑樹(自平衡的排序二叉樹)

Map 接口 key-value鍵值對

  • HashMap:JDK8之前HashMap由數(shù)組+鏈表組成的,數(shù)組是HashMap的主體,鏈表則是主要為了解決哈希沖突而存在的(“拉鏈法”解決沖突)。JDK8以后在解決哈希沖突時有了較大的變化,當鏈表長度大于閾值(默認為8)時,將鏈表轉(zhuǎn)化為紅黑樹,以減少搜索時間

  • LinkedHashMap: 繼承自 HashMap,所以它的底層仍然是基于拉鏈式散列結(jié)構(gòu)即由數(shù)組和鏈表或紅黑樹組成。另外,LinkedHashMap 在上面結(jié)構(gòu)的基礎(chǔ)上,增加了一條雙向鏈表,使得上面的結(jié)構(gòu)可以保持鍵值對的插入順序。同時通過對鏈表進行相應的操作,實現(xiàn)了訪問順序相關(guān)邏輯

  • TreeMap:紅黑樹(自平衡的排序二叉樹)

  • Hashtable: 數(shù)組+鏈表組成的,數(shù)組是 HashMap 的主體,鏈表則是主要為了解決哈希沖突而存在的

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

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