📜  HashMap和Hashtable之间的区别

📅  最后修改于: 2020-10-13 00:30:05             🧑  作者: Mango

HashMap和Hashtable之间的区别

HashMap和Hashtable都用于存储键和值形式的数据。两者都使用哈希技术来存储唯一密钥。

但是,下面给出的HashMap和Hashtable类之间有许多区别。

HashMap Hashtable
1) HashMap is non synchronized. It is not-thread safe and can’t be shared between many threads without proper synchronization code. Hashtable is synchronized. It is thread-safe and can be shared with many threads.
2) HashMap allows one null key and multiple null values. Hashtable doesn’t allow any null key or value.
3) HashMap is a new class introduced in JDK 1.2. Hashtable is a legacy class.
4) HashMap is fast. Hashtable is slow.
5) We can make the HashMap as synchronized by calling this code
Map m = Collections.synchronizedMap(hashMap);
Hashtable is internally synchronized and can’t be unsynchronized.
6) HashMap is traversed by Iterator. Hashtable is traversed by Enumerator and Iterator.
7) Iterator in HashMap is fail-fast. Enumerator in Hashtable is not fail-fast.
8) HashMap inherits AbstractMap class. Hashtable inherits Dictionary class.