Hashtable和HashMap區別(面試)

2022-02-26 12:06:07 字數 706 閱讀 9447

hashmap 是乙個最常用的map,它根據鍵的hashcode 值,重新計算hashmap中要使用的雜湊值作為key,然後根據新計算的key儲存資料。根據這個新計算的key,可以直接獲取它的值,具有很快的訪問速度。

hashtable 與 hashmap類似,但是主要有6點不同:

1.hashtable的方法是同步的,hashmap未經同步,所以在多執行緒場合要手動同步hashmap這個區別就像vector和arraylist一樣。

2.hashtable不允許null值,key和value都不可以,hashmap允許null值,key和value都可以。hashmap允許 key值只能由乙個null值,因為hashmap如果key值相同,新的key, value將替代舊的。

3.hashtable有乙個contains(object value)功能和containsvalue(object value)功能一樣。

4.遍歷的時候,hashtable使用enumeration,hashmap使用iterator。

5.hashtable中hash陣列預設大小是11,增加的方式是 old*2+1。hashmap中hash陣列的預設大小是16,而且一定是2的指數。

6.雜湊值的使用不同,hashtable直接使用物件的hashcode。

hashtable繼承自dictionary類,實現了map介面。而hashmap是繼承自abstractmap,實現了map介面。

Java中HashTable和HashMap的區別

1 hashtable的方法是同步的,hashmap不同步,所以在多執行緒情況下,使用的是hashtable 2 hashtable不允許null值 key和value都不可以 hashmap允許null值 key和value都可以 3 hashtable有乙個contains 方法,功能和cont...

資料結構之HashTable與HashMap

首先介紹一下hashtable 與hashmap hashtable類實現乙個雜湊表,該雜湊表將鍵對映到相應的值。任何非 null 物件都可以用作鍵或值。hashmap是基於雜湊表的map 介面的實現。此實現提供所有可選的對映操作,並允許使用 null 值和 null 鍵。hashmap不保證對映的...

Hashtable和Dictionary效能比較

在.net1.1裡經常會使用到hashtable,到裡.net 2.0以後我發現有了乙個很好用的idictionary實現類dictionary。但還是會擔心dictionary的檢索效率是否跟hashtable相當,據我了解arraylist的檢索效率是非常差的,binarysearch也不如ha...