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