HashSet HashMap 性能比较(为什么HashMap更快)

本文揭示了HashSet较HashMap性能稍慢的原因,主要在于HashMap的键通常是简单类型(如String或Integer),其hashcode计算比复杂对象更快。当键对象相同时,两者性能相近;区别在于键的类型影响了计算效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看到这样一张对比表的时候,我是懵逼的,HashSet 的操作,基本上都是直接调用底层 HashMap 的相关方法来完成,怎么就轻描淡写地来了句 HashSet 较 HashMap 来说比较慢呢?

通过面向浏览器编程,可算找到了一个靠谱的解释。

它们都必须计算hashcode,但请考虑HashMap键的性质--它通常是一个简单的String,甚至是一个Integer。计算它的hashcode要比整个对象的默认hashcode计算快得多。如果HashMap的键与存储在HashSet中的键是同一个对象,那么在性能上就不会有真正的差别。区别在于HashMap的键是什么类型的对象。

参考与感谢

https://stackoverflow.com/questions/16278995/why-is-hashmap-faster-than-hashset

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值