HashMap存在的意义是什么
HashMap 存在的意義是什么,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
我一直在思考一個(gè)問(wèn)題:HashMap 存在的意義是什么?也就是說(shuō) Java 為什么要設(shè)計(jì) HashMap?
HashMap 可以存儲(chǔ)一組鍵值對(duì)的集合,并實(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)為使用鏈表存儲(chǔ)。
鏈表存儲(chǔ)過(guò)多的節(jié)點(diǎn)又導(dǎo)致了在鏈表上節(jié)點(diǎn)的查找性能的惡化。
為了優(yōu)化查找性能,HashMap 在鏈表長(zhǎng)度超過(guò) 8 之后轉(zhuǎn)而將鏈表轉(zhuǎn)變成紅黑樹(shù),以將 O(n) 復(fù)雜度的查找效率提升至 O(log n)。
HashMap 存在的意義就是實(shí)現(xiàn)一種快速的查找并且插入、刪除性能都不錯(cuò)的一種 K/V(key/value)數(shù)據(jù)結(jié)構(gòu)。
關(guān)于HashMap 存在的意義是什么問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注箭頭云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
總結(jié)
以上是生活随笔為你收集整理的HashMap存在的意义是什么的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Krypt美国服务器开启12月促销 最高
- 下一篇: Scala中的apply方法和单例对象怎