我看了一下java源代码,并结合书上的知识,总结有四点:
(1)HashTable继承抽象类Dictionary,而HashMap继承自AbstractMap类并实现了Map接口;
(2)HashTable是线程安全的,而HashMap是线程不安全的;
(3)HashTable不容许有null值(key和value都不行),而HashMap容许有null值(key和value都行);
(4)HashTable中hash数目默认是11,增加的方式是2*old+1,而HashMap中的hash数目默认大小是16,并且一定要是2的指数;
(5)哈希值的使用不同,HashTable直接使用对像的hashCode,而HashMap会重新计算hash值。
(6)HashTable使用Enumeration遍历,而HashMap使用Iterator遍历。