码迷,mamicode.com
首页 > 编程语言 > 详细

Java Collection - HashMap 和 Hashtable 有什么区别?

时间:2020-09-16 12:01:36      阅读:25      评论:0      收藏:0      [点我收藏+]

标签:hashtable   img   扩容   article   sdn   blog   class   nta   http   

总结

JDK1.8 主要区别如下:

  • 线程安全性不同。HashMap线程不安全;Hashtable 中的方法是Synchronize的。
  • key、value是否允许null。HashMap的key和value都是可以是null,key只允许一个null;Hashtable的key和value都不可为null。
  • 迭代器不同。HashMap的Iterator是fail-fast迭代器;Hashtable还使用了enumerator迭代器。
  • hash的计算方式不同。HashMap计算了hash值;Hashtable使用了key的hashCode方法。
  • 默认初始大小和扩容方式不同。HashMap默认初始大小16,容量必须是2的整数次幂,扩容时将容量变为原来的2倍;Hashtable默认初始大小11,扩容时将容量变为原来的2倍加1。
  • 父类不同。HashMap继承自AbstractMap;Hashtable继承自Dictionary。
  • 是否有contains方法。HashMap没有contains方法;Hashtable包含contains方法,类似于containsValue。

技术图片

 

 

参考

HashMap 和 Hashtable 有什么区别?

https://zhuanlan.zhihu.com/p/95509849

 

Java Collection - HashMap 和 Hashtable 有什么区别?

标签:hashtable   img   扩容   article   sdn   blog   class   nta   http   

原文地址:https://www.cnblogs.com/frankcui/p/13601371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!