HashMap與HashTable的區別和理解

2022-09-07 13:15:09 字數 1108 閱讀 2655

hashmap的理解

1:hashmap是基於雜湊表的map介面的非同步實現。此實現提供所有可選的對映操作,並允許使用null值和null鍵。hashmap儲存的是鍵值對,hashmap很快。此類不保證對映的順序,特別是它不保證該順序恆久不變。

2:hashmap的工作原理 :hashmap是基於雜湊法(又稱雜湊法hashing)的原理,使用put(key, value)儲存物件到hashmap中,使用get(key)從hashmap中獲取物件。當我們給put()方法傳遞鍵和值時,我們先對鍵呼叫hashcode()方法,返回的hashcode用於找到bucket(桶)位置來儲存entry物件。」hashmap是在bucket中儲存鍵物件和值物件,作為map.entry。並不是僅僅只在bucket中儲存值。

hashtable的理解

1、hashtable的方法幾乎都是同步的,都有synchronized關鍵字修飾,因此和hashmap相比,它是執行緒安全的。

2、hashtable中key-value的對映,key和value 都是不允許為null的,如果為null了呢?對不起,空指標異常丟擲。

3、hashtable在計算節點元素在雜湊表中的位置使用的演算法稍有區別,它有它的好處,但和hashmap的演算法比起來明顯效能低一些。

hashmap和hashtable的主要區別

1、hashmap是繼承自abstractmap類,而hashtable是繼承自dictionary類。不過它們都實現了同時實現了map、cloneable(可複製)、serializable(可序列化)這三個介面。

2、hashtable比hashmap多提供了elments() 和contains() 兩個方法。

3、執行緒安全性不同,hashmap的方法都沒有使用synchronized關鍵字修飾,都是非執行緒安全的,而hashtable的方法幾乎都是被synchronized關鍵字修飾的。

HashMap的工作原理和hashtable區別

1.hashmap的工作原理?hashmap底層是陣列 鍊錶 以陣列儲存元素,如有hash相同的元素,在陣列結構中,建立鍊錶結構,再把hash相同的元素放到鍊錶的下乙個節點 基於hashing 雜湊法 雜湊法 是一種將字元組成的字串轉換為固定長度的數值或索引值的方法 的原理。通過put get 方法...

HashMap基礎與併發

執行緒不安全的hashmap,hashmap在併發執行put操作時會引起死迴圈,是因為多執行緒會導致hashmap的entry鍊錶形成環形資料結構,查詢時會陷入死迴圈。預設初始化大小為16,之後每次擴充,容量變為原來的2倍 預設載入因子為0.75 modcount作用 迭代器每修改一次就 1 has...

基礎才是重中之重 執行緒安全的Hashtable

執行緒安全就是多執行緒訪問時 web網頁多使用者訪問乙個頁面時 採用了加鎖機制,當乙個執行緒訪問該類的某個資料時,進行保護,其他執行緒不能進行訪問直到該執行緒讀取完,其他執行緒才可使用。不會出現資料不一致或者資料汙染。hashtable 表示鍵 值對的集合,這些鍵 值對根據鍵的雜湊 進行組織,它的k...