2016 - 2024

感恩一路有你

hashtable和hashmap的区别 hashtable为什么不能允许有null键和值而hashmap为什么又允许有?

浏览量:2832 时间:2021-03-12 12:23:58 作者:admin

hashtable为什么不能允许有null键和值而hashmap为什么又允许有?

HashMap,基于哈希表的map接口的实现。这个实现提供了所有可选的映射操作,并允许空值和空键。(除了异步和null之外,HashMap类与hashtable类基本相同。)这个类不能保证映射的顺序,尤其不能保证映射的顺序是永久的。这个实现假设hash函数在bucket之间正确地分配元素,这可以为基本操作(get和put)提供稳定的性能。迭代集合视图所需的时间与HashMap实例的“容量”(bucket数)及其大小(键值映射数)成比例。因此,如果迭代性能很重要,不要将初始容量设置得太高(或负载系数太低)。

Hashtable,类实现将键映射到相应值的哈希表。任何非空对象都可以用作键或值。为了在哈希表中成功地存储和获取对象,作为键的对象必须实现hashcode方法和equals方法。

HashTable和HashMap区别?

1. HashMap支持null键和null值;hashtable不支持。这是因为HashMap对null有特殊处理。它将hashcode值null设置为0,并将其存储在哈希表的第0个bucket中。

2. HashMap是非线程安全的,HashMap的线程安全方法是map map=集合.synchronziedMap(New HashMap());哈希表是线程安全的

3。HashMap的默认长度是16,扩展是原来的两倍;hashtable的默认长度是11,扩展是原来的2n1。HashMap继承abstractmap;hashtable继承dictionary

4。扩展,HashMap比较并发HashMap,HashMap vs SparseArray,linkedarray vs ArrayList,ArrayList vs vector

hashtable和hashmap的区别 hashmap键值可以为null吗 java方法不同步

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。