HashMap和Hashtable的区别
精华
小牛编辑
212浏览
2023-03-14
1 HashMap和Hashtable的区别
HashMap和Hashtable都以key-value(键值对)形式存储数据。两者都使用哈希技术来存储唯一key。
但是,HashMap和Hashtable类还是有一些区别的。
HashMap | Hashtable |
---|---|
HashMap是非同步的。意味是线程不安全的。 | Hashtable是同步。意味是线程安全的,可以与许多线程共享。 |
HashMap允许一个null或多个null值。 | Hashtable不允许任何null的key或value。 |
HashMap是JDK1.2中引入的类。 | Hashtable是一个遗留类。 |
HashMap是效率很快。 | Hashtable的效率比较低。 |
我们可以调用以下代码使HashMap线程同步: Map m = Collections.synchronizedMap(hashMap); |
Hashtable本身内部是线程同步的。 |
HashMap可以使用Iterator遍历。 | Hashtable可以使用Enumerator和Iterator遍历。 |
HashMap中的迭代器是(fast-fail)快速失败的。 | Hashtable中的枚举器不是(fast-fail)快速失败的。 |
HashMap继承AbstractMap类。 | Hashtable继承Dictionary类。 |