HashMap和HashTable的区别(简述版)
1.继承的父类不同
HashMap继承的是AbtractMap,HashTable继承的是Dictionary,但是两者均实现了Map接口。
2.线程安全性不同
HashMap是不安全的,HashTable是安全的。因为HashTable所有的方法全是 Synchrinize的。
3.存放的元素是否可为空
HashMap中key和value都允许为空,但是null为key的键值对只能有一对;而HashTable中key,value都不允许为空。
4.是否保留了Contains方法
HashMap不提供Contains方法,但是有containsValue和ContainsKey方法;
而HashTable既有Contains方法也有containsValue和ContainsKey方法。其中Contains和containsValue功能相同。
5.Hash值不同
HashMap重新计算了key的Hash值,而HashTable直接使用了key的HashCode()。
6.遍历方式不同
HashMap和HashTable都可以使用Iterator遍历,但是HashTable还可以使用Enumeration的方式。
7.初始容量不同
HashMap在不定义初始容量的情况下默认容量是16,而HashTable为11。
8.扩容方式不同
HashMap的扩容方式为乘以2,而HashTable的扩容方式为乘以2再减1。
————————————————
版权声明:本文为CSDN博主「小哈灬」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39411607/article/details/79044457