hashmap,hashmap和hashtable的区别
在领域中,我们经常会涉及到集合类的使用,其中HashMap、Hashtable是我们常用的两种集合类。下面将介绍它们之间的区别。
1. HashMap允许有null键和null值,Hashtable不允许有null键/null值
HashMap中允许存储null键和null值,而Hashtable则不支持这样的操作。
2. 初始容量: HashMap初始容量为16,Hashtable初始容量为11
在初始化时,HashMap的初始容量为16,而Hashtable的初始容量为11,这会影响集合的性能表现。
3. 扩容机制: HashMap扩容为原来的2倍,Hashtable扩容为原来的2n 1
HashMap在扩容时,会将容量扩大为原来的2倍;而Hashtable在扩容时,会将容量扩大为原来的2n 1,这个差异也会影响集合的性能。
4. 获取元素的算法: HashMap根据key【键】来计算hash值,而Hashtable则根据key【键】来计算hash值,并使用synchronized来保证线程安全
在获取元素时,HashMap通过计算key的hash值来快速定位元素,而Hashtable也是通过计算key的hash值,但在实现上会使用synchronized来保证线程安全。
5. 线程安全性: HashMap是非线程安全的,Hashtable是线程安全的
HashMap在多线程环境下可能会出现并发访问的问题,因为它不是线程安全的;而Hashtable是线程安全的,所有的方法都是同步的,适合在多线程环境下使用。
6. 继承关系不同: Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类
在继承关系上,Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类,但它们都实现了Map接口。
7. 性能表现: HashMap效率高,Hashtable效率低
由于HashMap不是线程安全的,所以在单线程环境下效率更高;而Hashtable虽然线程安全,但在多线程环墁下效率相对较低。
(责编: admin)Tags:
相关推荐
- 湖北三江航天建筑工程有限公司以 60925996.99 元中标红林总装厂房二期工程
- 江西省天久地矿建设集团有限公司中标龙里县城区排涝工程勘测
- 北京中和联信供应链管理有限公司中标山地农业科技创新基地植物表型研究设备采购及伴随服务(重新招标)项目,中标金额 7764000 元
- 霸州市佳理鑫五金制品厂中标新乐市第三中学采购项目
- 河北泽辉市政工程有限公司等为路南区乡村振兴环境综合治理项目(一期)一标段工程总承包(EPC)(二次)中标候选人
- 河北石府建设工程有限公司10110736.93元中标高铁片区景观提升项目施工三标段
- 中基恒源建设有限公司中标高铁片区(含新华商业广场)景观提升项目施工五标段,中标价 13430852.95 元
- 九芝堂换帅完成工商变更
- 山西建设投资集团有限公司为大宁县水果供应链基地运营配套建设项目施工(二次)第一中标候选人
- 浙江宁慈建设工程有限公司以97028327元中标慈溪市城市生活垃圾收转运一体化建设项目(一期)