理解HashSet裡為什麼value不是null

2022-09-28 18:51:10 字數 383 閱讀 5415

最近面試,遇到一些關於 hashset 的不尋常的八股

hashset底層的roaldkbcevalue為啥不是乙個 null呢,效率不是更高,還省得程式設計客棧建立物件了?

那我們先來看下,這個 value 何時會被用到呢?

直接呼叫的hashmap#put

若hashmap#put:

綜上,若底層hashmap的value維護的是null,則hashmap#put成功或失敗都會返回null,則hashset#add每次返回值都是true,就無法確認add是否成功了。

hashset的remove依舊直接使用h程式設計客棧ashmap#remove

hashmap#remove會返回value,所以若底層value都存null,就無法區分是否移除成功。

JS 裡為什麼會有 this

這篇文章是從語言創造者 js 之父的角度 來思考 this,我之前那篇講 this 的文章是從使用者的角度寫的。假設我們有乙個物件 var person saybye function 這個 person 物件有 name 和 age 屬性,還有乙個 sayhi 方法,現在的需求是 呼叫 perso...

python基礎裡的那些為什麼?

好,我們就以輸出hello world這個例子來比較兩種方式的不同 第一種方式 直譯器裡執行 第二種方式 檔案執行 有圖有真相,見下圖 實現使用者輸入使用者名稱和密碼,當使用者名為seven且密碼為123時,顯示登陸成功,否則登陸失敗 username input 請輸入使用者名稱 passward...

HashSet中為什麼不允許放重複的值

主要是因為hahcode hashcode 方法的作用 雜湊演算法,將集合分成若干個區域,每個物件在放入集合之前由計算 機計算出乙個哈吸碼,可以將雜湊碼分組,每組分別對應某個區域,根據乙個物件的雜湊碼可以 確定該物件應儲存在哪個區域。當再次向雜湊表中存入物件的時候,依舊這樣兒運算,但可以快 速的判斷...