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

2021-03-29 18:27

阅读:360

标签: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


评论


亲,登录后才可以留言!