HashMap和HashTable的区别

Posted wdss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashMap和HashTable的区别相关的知识,希望对你有一定的参考价值。

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的区别的主要内容,如果未能解决你的问题,请参考以下文章

HashMap与HashTable的区别

HashMap和HashTable的区别是什么

HashMap和Hashtable的区别?

HashMap和Hashtable的区别

hashMap和hashTable区别

hashMap和hashTable的区别