1.繼承的父類不同:
hashtable的父類是dictionary
hashmap的父類是abstractmap;
2.執行緒安全性:
hashtable:執行緒安全,hashtable方法有synchronized修飾
hashmap:執行緒不安全
3.contains()
hashtable:保留了contains(),containskey(),containsvalue()
hashmap:去掉了contains(),保留了containskey(),containsvalue()
4.key,value是否能為null
hashtable:key,value都不能為空.原因是原始碼中方法裡會遍歷entry,然後用entry的key或者value呼叫equals(),所以要先判斷key/value是否為空,如果為空就會丟擲異常
hashmap:key,value可以為空.null作為key只能有乙個,null作為value可以存在多個
5.遍歷方式的內部實現不同
hashtable:使用enumeration,iterator
hashmap:使用iterator
6.內部實現使用的陣列初始化和擴容方式不同
hashtable:陣列初始大小為11,擴容方式為2*old+1
hashmap:陣列初始大小為16,擴容方式為2的指數冪形式
7.hash值不同
hashtable: 直接使用hashcode()
hashmap:重新計算hash值
只是列出不同點,詳細的區別會慢慢補充...
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...