1、两者父类不同
hashMap继承AbstractMap类,而hashtable继承Dictionary类。但他们都同时实现了Map,Cloneable,Serializable三个接口
2、对外提供的方法不同
hashtable比hashMap多提供了elements()和contains()两个方法
3、对null的支持不同
hashMap:key允许为空,这样的键只允许一个
hashtable:key和value都不支持null
4、安全性不同
HashMap线程不安全,Hashtable线程安全
5、初始化大小和扩容大小不同
(1)HashMap初始化大小是16,Hashtable初始化大小为11
(2)HashMap底层数组容量要求一定为2的整数幂,Hashtable没要求
(3)HashMap扩容时将容量变为原来的2倍,Hashtable将容量变为原来的2倍+1
6、计算hash值的方法不同
HashMap重新计算了key的hash值,而Hashtable计算hash值,直接用key的hashCode(),