HashMap 继承自AbstractMap,实现Map接口HashTable 继承自java.util.Dictionary(注:此类已过时。新的实现应该实现 Map 接口,而不是扩展此类。),实现Map接口
除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同
一些区别1. 是否可以让key为null
HashMap:
public V put(K key, V value) {
if (key == null) // 如果空值交给对应的方法处理
return putForNullKey(value);
HashTable:
public synchronized V put(K key, V value) {
// Make sure the value is not null
if (value == null) {
throw new NullPointerException(); // 如果空值则空指针异常
}
2. 从上面也可以看出,HashTable所有的设计同步的方法均有synchronize锁定
3. HashMap继承自AbstractMap,AbstractMap的本意是实现Map的大部分骨干功能,为了其子类减压。但是实际上大部分子类继承后覆盖了其中的大部分方法。