美文网首页
hashMap与hashTable的对比

hashMap与hashTable的对比

作者: firststep | 来源:发表于2018-03-29 09:04 被阅读0次
1. 父类

1.HashMap继承自抽象类AbstractMap,而HashTable继承自抽象类Dictionary。

2. 公开方法

2.HashTable比HashMap多了两个公开方法。一个是elements,这来自于抽象类Dictionary,鉴于该类已经废弃,所以这个方法也就没什么用处了。另一个多出来的方法是contains。

3.空的键值对

3.HashMap是支持null键和null值的,而HashTable在遇到null时,会抛出NullPointerException异常。这并不是因为HashTable有什么特殊的实现层面的原因导致不能支持null键和null值,这仅仅是因为HashMap在实现时对null做了特殊处理,将null的hashCode值定为了0,从而将其存放在哈希表的第0个bucket中。

4.扩容

4.HashTable默认的初始大小为11,之后每次扩充为原来的2n+1。HashMap默认的初始化大小为16,之后每次扩充为原来的2倍。还有我没列出代码的一点,就是如果在创建时给定了初始化大小,那么HashTable会直接使用你给定的大小,而HashMap会将其扩充为2的幂次方大小。

5. 线程安全

hashMap是线程不安全的,hashTale是线程安全的.因为hashTable的源代码用了synchronized关键字。

相关文章

网友评论

      本文标题:hashMap与hashTable的对比

      本文链接:https://www.haomeiwen.com/subject/rygpcftx.html