首页 > 其他 > 详细

HashMap和HashTable的区别

时间:2019-07-02 21:24:31      阅读:118      评论:0      收藏:0      [点我收藏+]

1、Hashtable是线程安全的,方法是Synchronized的,适合在多线程环境中使用,效率低;

  HashMap不是线程安全的,方法不是Synchronized的,效率高,适合在单线程环境下使用,在多线程的场合下使用的话,需要手动同步HashMap

  HashMap同步的方法:Map m = Collections.synchronizeMap(hashMap);

2、HashMap的key和value都可以为null值,HashTable的key和value都不允许null值

3、HashMap中数组的默认大小是16,而且一定是2的倍数,扩容后的数组长度是之前数组长度的2倍

  HashTable中数组默认大小是11,扩容后的数组长度是之前数组长度的2倍+1

4、HashMap和HashTable都可以使用Iterator遍历,后者还可以通过Enumeration遍历

5、HashTable直接使用对象的hashCode,而HashMap则需要重新计算hash值

6、HashTable是继承自Dictionary类的,而hashMap则是java1.2引进的Map接口的一个实现

 

HashMap和HashTable的区别

原文:https://www.cnblogs.com/wdss/p/11123059.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!