栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

HashMap通过简单而复杂的键获得性能

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HashMap通过简单而复杂的键获得性能

的性能

get()
取决于两件事:

  • 参数键对象
    hashCode()
    方法的性能
  • 现有关键对象
    equals()
    方法的性能

看看的文档

HashMap.get()
。映射包含键值对。为了找到正确的键值,使用了键的
equals()
方法。在中
HashMap
,要比较的键数通过使用哈希值来减少。因此
hashCode()
,在您作为参数传递的键对象上仅执行一次。

然后,的实现

HashMap
有几个可能要比较的关键对象(理想情况下只有一个)。这意味着它必须执行
equals()
1到n次。

如果您具有

Set
as键类型,则两者都会更复杂,因为它们会迭代
Set
自身中包含的所有对象。看看执行的
equals()
hashCode()
HashSet
和比较它的那些
String

以您的示例为例:由于

hashCode()
恰好执行一次,因此其影响比少
equals()
。在第一个块中,您需要对其进行一次计算
HashSet
,然后
get()
再次对其进行计算
Integer
(这实际上并不那么复杂)。这在
hashCode()
零件上没有多大区别。第一个块要快得多,因为
equals()
执行的是
Integer
代替
HashSet
,它要快得多。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617258.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号