HashMap和Hashtable的區別

2021-08-07 19:45:38 字數 800 閱讀 2446

hashmap和hashtable的區別主要就兩點:

1、hashmap是非執行緒安全的,hashtable是執行緒安全的。

檢視hashtable的源**就可以發現,除建構函式外,hashtable的所有 public 方法宣告中都有synchronized關鍵字,而hashmap的源**中則連 synchronized 的影子都沒有,當然,注釋除外。

因為執行緒安全的問題,hashmap效率比hashtable要

2、hashmap的鍵和值都允許有null值存在,而hashtable則不行。

hashtableput()

public synchronized v put(k key, v value)  else

if (value == null)

……}

可以看到如果鍵值為null,都會丟擲異常,而hashmap就不會。

以上就是二者主要的區別,其他基本類似,關於二者的資料結構等可以參考hashmap原理分析。

如果要在多執行緒下運算元據,建議使用concurrenthashmap,它的效能好很多。

HashMap的工作原理和hashtable區別

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

HashMap和LinkedHashMap的區別

hashmap,linkedhashmap,treemap都屬於map map 主要用於儲存鍵 key 值 value 對,根據鍵得到值,因此鍵不允許鍵重複,但允許值重複。hashmap 是乙個最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。ha...

HashMap和LinkedHashMap的區別

hashmap,linkedhashmap,treemap都屬於map map 主要用於儲存鍵 key 值 value 對,根據鍵得到值,因此鍵不允許鍵重複,但允許值重複。hashmap 是乙個最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。ha...