元素放入HashMap的原理?元素放入HashSet的實作原理? HashMap和Hashtable有什么區別?
面試必備,展開激烈的討論吧! 增強印象
uj5u.com熱心網友回復:
你一次拋這么多問題,難以招架元素放入HashMap的原理:HashMap是一個陣列加鏈表的結構,根據Hash找key,然后找到要放的陣列位置,再根據key的值去做比較插入鏈表
元素放入HashSet的實作原理:HashSet是HashMap的一種實作
HashMap和Hashtable有什么區別:二者的父類都不同,前者是AbstractMap;后者是Dictionary
uj5u.com熱心網友回復:
還有HashTable是執行緒安全的,底層用大量的synchronization修飾,但效率不高uj5u.com熱心網友回復:
那你知道為什么HashTable是執行緒安全的,HashMap執行緒不安全?
uj5u.com熱心網友回復:
說的蠻不錯,但是這個地方說的有瑕疵吧!應該是根據key去找hash吧! 使用元素的key呼叫hashCode方法獲取對應的哈希碼值,再由某種哈希演算法計算在陣列中的索引位置。若該位置沒有元素,則將該鍵值對直接放入即可。若該位置有元素,則使用key與已有元素依次比較哈希值,若哈希值不相同,則將該元素直接放入。若key與已有元素的哈希值相同,則使用key呼叫equals方法與已有元素依次比較。若相等則將對應的value修改,否則將鍵值對直接放入即可轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/165224.html
標籤:Java SE
上一篇:多執行緒初級問題。
