HashMap和HashTable

1)继承不同但是实现相同
public class HashTable extends Dictionary implements Map
public class HashMap extends AbstractMap implements Map
2)HashTable方法是同步的,HashMap不同步,再多线程并发的情况下可使用HashTable
3)HashTable中,key和value都不能出现null值,HashMap,null可以作为key,但只能有一个。而value可以有一个或多个null.所以用get()方法返回null值时,可以表示HashMap中的key为null,也可以表示value,所以一般使用containsKey()方法来判断是否存在某个键
4)两个遍历方式的内部实现上不同
HashTable、HahMap都使用了Iterator,但HashMap还使用了Enumeration的方式
5)哈希值的使用不同,HashTable直接使用对象的hashCode,HashMap重新计算
6)两个内部实现方式的数组的初始化大小和扩容方式不同,HashTable中的hash数组默认是11,扩张方式是2n+1,HashMap默认是16,而且一定是2的指数

posted @ 2020-11-01 19:57  走过路过哭过  阅读(51)  评论(0)    收藏  举报