天天看点

java基础知识—HashTable和HashMap的区别

我看了一下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遍历。