說HashMap的原理,它吸收了數(shù)組和鏈表的優(yōu)點,那數(shù)組是什么,優(yōu)點是什么,數(shù)組的元素存儲在內存中是連續(xù)的,它的下標就是內存地址,可以根據(jù)下標快速找到保存在內存里面的元素,所以它的優(yōu)點就是查詢快;那鏈表是什么?鏈表的元素離散存儲的,每個元素有自己的存放地址和下個元素的存放地址,增加元素時只需要斷開指向,并再指向新元素的地址,刪除也一樣,只需斷開前后指向,后面的元素指向原來的指向地址。HashMap結合了這兩個優(yōu)點,所以hashmap是由數(shù)組和鏈表組成的,HashMap是鍵值對形式的,插入元素時,根據(jù)key的HashCode值和hashmap的length進行&運算來確定數(shù)組的下標,這個步驟保證了計算出來的下標在hashmap的length里,然后用前插的形式插入鏈表中,查詢的時候根據(jù)像上面一樣,根據(jù)hashcode去計算出數(shù)組的下標,快速定位到是哪個鏈表,然后從鏈表中查詢元素出來。
HashMap的原理簡答
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內容
- 數(shù)據(jù)結構中有數(shù)組和鏈表來實現(xiàn)對數(shù)據(jù)的存儲,但這兩者基本上是兩個極端。 數(shù)組 數(shù)組存儲區(qū)間是連續(xù)的,占用內存嚴重,...
- 概念 HasnMap是基于map接口實現(xiàn),元素以鍵值對的方式存儲,并且鍵和值都可以使用null,因為key不允許重...
- Hash表也叫散列表,是一張非常重要的數(shù)據(jù)結構,很多緩存技術的核心就是在內存中維護一張大的Hash表 簡單回顧其他...