码迷,mamicode.com
首页 > 其他好文 > 详细

HashMap和HashTable的区别

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

标签:ash   单线程   安全   环境   ons   计算   val   enum   hashmap   

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的区别

标签:ash   单线程   安全   环境   ons   计算   val   enum   hashmap   

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

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