1.HashTable是线程安全的,HashMap是线程不安全的,HashTale方法中加了synchronized。
2.HashTable是基于Distionary,HashMap是基于AbstractMap。
3.HashTable中hash数组默认大小为11,增加方式为old*2+1,HashMap中hash数组默认大小为16,增加方式为2的指数,加载因子为0.75。
4.HashTable的key和value不允许为空,而HashMap的key和value可以为空。
5.hash值使用的不同,HashTable直接使用的是对象的hashcode,而HashMap是从新计算hash值,然后用于代替求模。
6.两者的遍历大同小异,HashTable仅仅比HashMap多了一个elements方法,HashTable和HashMap都能通过values()方法返回一个collection,然后进行遍历处理,两者都可以通过entrySet()返回一个set,然后进行便利。
7.HashTable使用的是Enumeration,HashMap使用的是iterator.