面試官:HashMap加載因子為什麼是0.75?當場懵了

2021-01-10 願編程是詩

HashMap的確有很多細節值得我們注意,正如被問到HashMap加載因子為什麼是0.75?,好了廢話不多說,直接上源碼分享。

HashMap加載因子是什麼?

HashMap的底層結構是哈希表 ,是以鍵值對形式存儲的。在存HashMap儲過程中,首先會通過hash計算出哈希值才能知道數據要存儲在哈希表中的某個位置。

但是這樣的存儲有個問題:

在存在數據時,我們是通過哈希算法計算出要存儲的位置,但是有可能該位置已經有數據存儲了,這時候就會產生哈希衝突的問題。還有一個問題就是,如果為了避免哈希衝突,而增大數組容量來減少哈希衝突問題,有可能會導致數組空間浪費或者空間小的問題。而加載因子就是決定HashMap的數據密度

公式:加載因子=填入表中元素/散列表的長度

如果負載因子設置過大或過小會有什麼問題?

首先知道負載因子的大小是主要就是決定了HashMap的數據密度的嘛如果負載因子越大數據密度越大,就會可能發生碰撞的機率越高,數組中的鍊表也會越容易長, 這樣的話造成查詢和插入時的比較次數增多,性能會下降。(可能又引出一個面試題:如何解決Hash碰撞問題?)如果負載因子越小,就會越容易觸發擴容,雖然數據密度也越小,發生碰撞機率小,數組中鍊表越短對於查詢和插入時比較次數也會少一些,性能也會提高。但是擴容會影響性能,所以建議初始化預設給它大一點空間。那你覺得負載因子設置為多少較為合理

HashMap 初始容量大小默認是16,這是為了減少衝突發生的概率,當HashMap的數組長度到達一個臨界值的時候,就會觸發擴容,把所有元素rehash之後再放在擴容後的容器中,這是一個相當耗時的操作,所以擴容是件影響性能的。

而這個臨界值就是由加載因子和當前容器的容量大小來確定的,公式:

臨界值:默認容量大小16*加載因子,即默認是16乘0.75=12此時就會發生擴容操作

我會考慮將負載因子設置為0.7~0.75,因為此時平均檢索長度接近於常數了,這樣會更好一些。

如果想要獲取【Java後端複習腦圖、學習路線】,關注我且私信「思維腦圖」。

相關焦點

  • 面試官:HashMap默認負載因子0.75和泊松分布有關係嗎
    我們在看HashMap源碼時,知道HashMap默認的負載因子是0.75。那這個0.75是怎麼來的呢?通常,加載因子需要在時間和空間成本上尋求一種折中。選擇0.75作為默認的加載因子,完全是時間和空間成本上尋求的一種折中選擇HashMap源碼中有段注釋,如下:翻譯如下:通常,默認加載因子 (.75) 在時間和空間成本上尋求一種折中。
  • HashMap的負載因子為什麼默認是0.75?這篇文章告訴你答案
    之前寫過一篇專門介紹HashMap的文章,反響很不錯,不過在留言區問得最多的問題就是HashMap的負載因子初始值為什麼是0.75,私下又好好地研究了一番,總結了這篇文章。本篇文章基於JDK1.8,特在此說明。OK。下面我們就開始進行分析。
  • 面試官:我請你坐下卻不給你凳子,怎麼辦?小夥神回復被當場錄取
    現如今想要進入一個自己心儀的公司,真的是需要過「五關斬六將」經歷百場的筆試在加上一次決定命運的面試才有可能得到一份飯碗。很多人筆試通過,但是卻敗在面試上,這樣真的是太可惜了。一家新媒體公司在招收新員工的時候,除了必須的10個基礎問題外,面試官僅用了一道「請你坐下卻不給你凳子,怎麼辦?」的面試題,瞬間篩選出了崗位需要的精英。咱們來看看應聘者遇到這樣的問題的時候都是怎麼回答的。第一位面試者。可能是緊張的原因語無倫次地說了半天,面試官也沒聽懂他說的是什麼。
  • Java初學者進階系列:HashMap的容量與性能
    (HashMap是常見的數據結構,也是面試和工作中常用到的數據結構,線下可以使用微通過crazy042438一起單點討論)1.1 Initial Capacity與Load FactorInitial Capacity:初始化容量,它表示HashMap底層的那個數組,也就是Entry數組有多長,這個值默認是16。
  • 面試官:二三四五六七八九,猜一成語?小姑娘機智回答被當場錄用
    職場中,每個人難免會經歷面試這一個道關卡。有人戰戰兢兢,做足了準備,最後卻只能展示理想的30%,有人卻可以遊刃有餘,一路過五關斬六將,輕鬆拿到Offer。除了心理建設之外,面試時可以做到臨危不亂,隨機應變才是能決定面試成敗的關鍵!
  • 面試官:「滅」字多一筆是什麼字?研究生淡定回復,當場被錄用
    面試官:「滅」字多一筆是什麼字?研究生淡定回復,當場被錄用如果說一家公司的發展沒有湧入大量的優秀人才,那麼是很難長期穩健的立足下去。這不,最近,胖乎乎的劉老闆就準備對公司開展相關的面試活動。這天,劉老闆正在辦公室對項目組命令了一些任務,而低下的人也只是敢怒不敢言,紛紛點頭稱好。
  • 面試官:人體最大的器官是什麼?小姑娘這樣說,當場被錄用
    面對面試官的提問,我們要從態度上配合他。這樣可以避免我們失去不應該失去的分數。應聘者的表現,會影響到面試官的心理,從而產生了印象分,印象分是沒有具體的標準來衡量,完全是面試官的心裡第一感受。有的時候也正是面試官這個印象分,決定了一名求職者的面試成績,甚至是他之後的前途。小孫從上一家公司辭職以後,想去應聘一家房地產公司的主管一職。在面試當天,小孫早早的定好鬧鐘,及時趕到了面試地點,他在面試現場表現異常活躍。
  • 面試官:「王」字加一筆是什麼字?小夥機智回答,當場被錄用!
    很多公司也一直都是通過面試的方式尋找人才,可是如何才能考驗出應聘者的真實水平呢?為此HR想了不少奇奇怪怪的辦法。我的一個朋友之前去一個公司面試的時候,就遇到了臨場考察的情況。面試官:「王」字多一筆,是什麼字?小夥機智回復,當場錄用!
  • 面試官:「鳥」字加一筆是什麼字?博士生秒答,當場被錄用
    對於面試而言,是進入職場的第一步,所以無論是對於任何求職者來講,他們在這個時候都是非常緊張的。並且在面試之前,也必定會做上許多的準備,就是為了讓自己不會失去這次難得的機會。但有些時候,面試官提出來的問題也是非常奇葩,所以有些面試者在這個時候,就有些不太耐煩了,因此也很容易失去這一次的機會。女面試官在面對面試者的時候,竟然提出了這樣的一個問題,她說「鳥」字加一筆會是什麼字?第一個面試者是一個小夥子,他對女面試官說自己之前,表現出來的專業知識都非常的強,所以對於這個問題回答不上來,也希望能夠通融一下。
  • 搞定HashMap面試,深入講解HashMap的工作原理
    為什麼HashMap深受面試官青睞,我想有這3個原因:常用、基礎線程不安全,容易出問題大廠都在問,自己不問顯得面試官沒水平Hash虐我千百遍,我視它為初戀,真的是又愛又恨。愛的是每次面試都有它,可以提前做準備,恨的是準備也白準備,依然被滅。這次要做回真正的男人,和它做一個了斷。互虐一次,一勞永逸。
  • 面試官:木字少一橫,是什麼字?本科生:小,當場被淘汰
    本科畢業的徐崢在應聘時就遇到了這樣一道面試題,面試官:木字少一橫,是什麼字?本科生:小,卻被當場被淘汰了。徐崢是學英語專業的,雖然是本科,不過由於大學時比較貪玩,學的不是太精通。本來想去初中或者高中應聘當老師,畢竟老師的待遇還是不錯的,但幾次應聘下來都沒有被錄用。於是他決定挑戰一下自己,找份銷售的工作做做,畢竟是男孩子嘛,這股衝勁還是有的。
  • 面試官:馬字去掉一筆,是什麼字?90後女子機智作答,當場被錄取
    面試官:馬字去掉一筆,是什麼字?90後女子機智作答,當場被錄取。每當畢業季到來的時候,往往會有很多的畢業生踏上求職的道路,對於他們來說,都很希望能夠在畢業之後就找到一份屬於自己的理想工作,但是在他們通往自己心儀的工作崗位之前,往往都必須通過面試官的嚴格考驗,只有能夠順利的通過面試官的面試,才有機會在自己心儀的崗位中大展身手,面試對於企業來說也是至關重要的,企業能夠通過面試,從眾多的求職者中挑選出一些能夠符合企業發展的優秀人才
  • 面試官:一隻螃蟹8條腿,100隻多少?回答800條的,當場被淘汰
    對於一個初入社會的小白來說,面試時那些五花八門的面試題讓他們焦頭爛額。他們並不知道如何回答面試官提出的一些問題。其實面試官所提出的問題和他們的學歷沒有任何的關係。 這也說明了,一個企業除了注重人員的學歷外,更加注重一個人的情商和邏輯思維能力。
  • 面試官:小字加一撇是什麼字?碩士生回答:少,當場被淘汰了
    她到了面試公司,來應聘的人坐在外面等候面試官的到來,李晶晶也趁著這個時間趕緊背熟簡歷和公司的相關資料。不一會兒,在面試官的帶領下進入到了會議室,面試官先看了看面試者的簡歷,對大家有一個大致的了解後,然後又提了一些簡單的問題,最後經過決定留下了三個人。
  • 面試官:有什麼最快方法,把冰變成水?小陳只用1秒,當場錄取
    面試官:有什麼最快方法,把冰變成水?小陳只用1秒,當場錄取 ,太聰明了!現在的職場競爭非常激烈,很多求職者都面臨找工作的難題,很多人一般的工作又不想做,好一些的單位又面臨狼多肉少的困境,因此公司相對較好的崗位,面試都變得非常嚴格,HR經常會問一些「尖酸刻薄」的面試題,以此來考驗面試者的綜合能力求職面試永遠有說不完的話題,問題的回答也永遠是千人千面,之所以有這樣的結果,跟求職者對面試問題的理解有很大的關係
  • 面試官:唐僧去西天取經,打一成語?小夥子機智回答,被當場錄取
    面試官:唐僧去西天取經,打一成語?小夥子機智回答,被當場錄取。面試是職場上人才篩選的必經過程。面試可以反映出一個人的綜合素質。對於很多求職者早已見怪不怪。當然有些剛出社會的年輕人,對於面試來說,還是會產生恐慌心理,甚至怕不知如何回答面試問題。
  • 面試官總說:回去等消息,就再也沒有下文了,為什麼?
    面試可以說是所有公司非常正常的招工手段了,不論是職場新人還是職場老人,依然對面試時候的場景記憶猶新。特別是在被拒絕這方面,很多公司都玩出了「花」。拒絕對於職場人來說本來就不是一個稀奇的事情了,懷著滿腔熱血想進入公司大展拳腳,甚至量身定製了進入公司後的詳細規劃,可卻連公司的入場券都得不到,屢屢鎩羽而歸。這是為什麼呢?
  • 面試官:為什麼鐵錘錘雞蛋,錘不破?專科生打敗本科生,直接錄取
    面試官:為什麼鐵錘錘雞蛋,錘不破?專科生打敗本科生,直接錄取!現在是畢業季,許多大學生紛紛踏出校園走近社會,不得不面臨找工作的難題,也不得不去公司參加一次次面試。在新的環境下,陌生的人面前,很多面試者的心理可能是緊張的,但是面試官總能想辦法給你加點料,問你一些奇葩的問題,這時你可要做好準備,不要以為問題沒有意義,其實裡面挖好了陷阱等你去填平呢!蔡強是今年剛畢業的專科畢業生,因為文憑不高的緣故,蔡強去找工作的時候時常碰壁,不過他並沒有就此氣餒,為此他平時一邊學習技能知識,一邊繼續著自己的求職之旅。
  • 面試官:十個口一個心,是什麼字?小夥機智回答,當場被錄取!
    面試官:十個口一個心,是什麼字?小夥機智回答,當場被錄取!現在的社會發展的很快,有什麼不懂得在網上查一查就可以知道了。人們很少自己動腦思考一些問題,只顧著專業技能的提升,但是卻忘記了自身的內在涵養。所以現在HR在面試的時候越來越注重求職者的內在知識含量了!而考核方式也比較嚴格,通常提出的問題雖然古怪,但是具有深奧的道理富含其中。這是某個廣告企業的面試現場,現在設計已經遍布在我們的生活中了,HR有男有女。看起來都非常的嚴肅,眼神非常深邃!經過第一輪的嚴格考核之後,只留下了3位求職者。
  • 面試官:「去」字少一筆,是啥字?女孩機智回復,當場錄用
    面試是一件比較艱難的事情,因為有些面試官很喜歡捉弄別人,甚至很喜歡刁難面試者。不過有些時候,這些面試官確實是為了刁難而刁難,也有一些是真的為了給公司篩選出來合適的人。好在第一輪是專業技能考核,麗麗憑藉自己的經驗和業績,給面試官留下了不錯的印象,順利地進入到了第二輪。第二輪考核的是面試者的思維能力,面試官也換成了一位外表幹練的女面試官。她看了看眼前這3位的面試者,冷冷地說了一句話:「咱們這輪面試只有一道題:「去」字減一筆,變成什麼字。30秒內答不出來的被淘汰。」