面試題 HashMap詳解

2021-07-13 12:45:40 字數 473 閱讀 5774

先上hashcode和equals原始碼:

/** jni,呼叫底層其它語言實現 */

public

native

inthashcode();

/** 預設同==,直接比較物件 */

public

boolean

equals(object obj)

equals方法:string類中重寫了equals方法,比較的是字串值,看一下原始碼實現:

public boolean equals(object anobject)   

if (anobject instanceof string)

return

true;

} }

return

false;

}

重寫equals要滿足幾個條件:

HashMap常見面試題

1.你知道hashmap的工作原理嗎?你知道hashmap的get 方法的工作原理嗎?hashmap基於hashing原理,我們通過put 和get 方法儲存和獲取物件。當我們將鍵值對傳遞給put 方法時,它呼叫鍵物件的hashcode 方法來計算hashcode,讓後找到bucket位置來儲存en...

HashMap常見的面試題

1.hashmap底層是如何實現的?首先底層資料結構是由陣列 鍊錶組成鍊錶雜湊。hashmap先得到key的雜湊值,在通過擾動函式 減少碰撞次數 得到hash值,接著通過hash n 1 n位table的長度,運算後得到陣列的索引值。如果當前節點存在元素,則通過比較hash值和key值是否相等,相等...

HashMap常見面試題

物件 key和value是否允許為空 是否執行緒安全 hashmap key和value都允許為null 否hashtable key和value都不允許為null 是concurrenthashmap key和value都不允許為null 是jdk1.7 超過擴容的閾值 發生碰撞 jdk1.8 超...