简单分析一下它们的区别:
(1)HashTable是同步的,HashMap不能同步。
(2)HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。
(3)HashTable有一个contains()方法,功能和containsValue()功能一样。
(4)HashTable使用Enumeration遍历,HashMap使用Iterator遍历。
(5)HashTable中Hash数组默认大小是11,增长方式是:old*2+1。HashMap中hash数组大小默认是16。
(6)HashTable直接使用对象的HashCode,而HashMap会重新计算hash值。
注:HashMap更符合java集合框架的设计思路,更推荐使用。