HashMap 存在的意義是什么,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
我一直在思考一個問題:HashMap 存在的意義是什么?也就是說 Java 為什么要設(shè)計 HashMap?
HashMap 可以存儲一組鍵值對的集合,并實(shí)現(xiàn)快速的查找。
為了實(shí)現(xiàn)快速查找,HashMap 選擇了數(shù)組而不是鏈表。以利用數(shù)組的索引實(shí)現(xiàn) O(1) 復(fù)雜度的查找效率。
為了利用索引查找,HashMap 引入 Hash 算法, 將 key 映射成數(shù)組下標(biāo): key -> Index。
引入 Hash 算法又導(dǎo)致了 Hash 沖突。
為了解決 Hash 沖突,HashMap 采用鏈地址法,在沖突位置轉(zhuǎn)為使用鏈表存儲。
鏈表存儲過多的節(jié)點(diǎn)又導(dǎo)致了在鏈表上節(jié)點(diǎn)的查找性能的惡化。
為了優(yōu)化查找性能,HashMap 在鏈表長度超過 8 之后轉(zhuǎn)而將鏈表轉(zhuǎn)變成紅黑樹,以將 O(n) 復(fù)雜度的查找效率提升至 O(log n)。
HashMap 存在的意義就是實(shí)現(xiàn)一種快速的查找并且插入、刪除性能都不錯的一種 K/V(key/value)數(shù)據(jù)結(jié)構(gòu)。
關(guān)于HashMap 存在的意義是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注箭頭云行業(yè)資訊頻道了解更多相關(guān)知識。
網(wǎng)站名稱:HashMap存在的意義是什么
當(dāng)前地址:http://www.rwnh.cn/article18/cpihdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、搜索引擎優(yōu)化、商城網(wǎng)站、域名注冊、手機(jī)網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)