标签: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接口的一个实现
标签:ash 单线程 安全 环境 ons 计算 val enum hashmap
原文地址:https://www.cnblogs.com/wdss/p/11123059.html