高薪面试题必备之HashMap 的底层原理
生活随笔
收集整理的這篇文章主要介紹了
高薪面试题必备之HashMap 的底层原理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. HashMap的數(shù)據(jù)結構
數(shù)據(jù)結構中有數(shù)組和鏈表來實現(xiàn)對數(shù)據(jù)的存儲,但這兩者基本上是兩個極端。
數(shù)組
數(shù)組存儲區(qū)間是連續(xù)的,占用內(nèi)存嚴重,故空間復雜的很大。但數(shù)組的二分查找時間復雜度小,為O(1);數(shù)組的特點是:尋址容易,插入和刪除困難;
鏈表
鏈表存儲區(qū)間離散,占用內(nèi)存比較寬松,故空間復雜度很小,但時間復雜度很大,達O(N)。鏈表的特點是:尋址困難,插入和刪除容易。
哈希表
那么我們能不能綜合兩者的特性,做出一種尋址容易,插入刪除也容易的數(shù)據(jù)結構?答案是肯定的,這就是我們要提起的哈希表。哈希表((Hash table)既滿足了數(shù)據(jù)的查找方便,同時不占用太多的內(nèi)容空間,使用也十分方便。
哈希表有多種不同的實現(xiàn)方法,我接下來解釋的是最常用的一種方法—— 拉鏈法,我們可以理解為“鏈表的數(shù)組” ,如圖:
總結
以上是生活随笔為你收集整理的高薪面试题必备之HashMap 的底层原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VUE属性绑定
- 下一篇: 高性能实践IO之Reactor模式