Hashmap:
HashMap 的实例有两个参数影响其性能:初始容量和加载因子。基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。(除了非同步和允许使用null之外,HashMap类与Hashtable大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get和put)提供稳定的性能。迭代collection视图所需的时间与HashMap实例的“容量”(桶的数量)及其大小(键-值映射关系数)成比例。所以,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低。
Hashtable:
类实现一个哈希表,该哈希表将键映射到相应的值。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现hashCode方法和equals方法。Hashtable 的实例有两个参数影响其性能:初始容量和加载因子。
1.Hashmap几乎等价于Hashtable,除了Hashmap是非synchronized的,并可以接受null(Hashmap可以接受为null的键值(key)和值(value),而Hashtable则不行)。
2.Hashmap是非synchronized,而Hashtable是synchronized的,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享Hashmap的。
博客介绍了HashMap和Hashtable的相关特性。HashMap是基于哈希表的Map接口实现,允许null键值,非同步;Hashtable将键映射到值,键值不能为null,是同步的。二者性能都受初始容量和加载因子影响,且对多线程共享支持不同。
1610

被折叠的 条评论
为什么被折叠?



