HashMap中判断key条件
if (p.hash == hash && ((k = p.key) == key || (key != null && key.equals(k))))
源码中为什么使用了equals判断相等后,同时需要判断hash码是否相同?
这里需要注意的是key可以使对象即Object类型的,也可以是Long、Integer等类型;
如果是object作为key,实际判断key相等默认使用object=object方式,
如果是Long、Integer类型作为key时,实际equals方法中判断的是值是否相同,因此有时会类型不同但是值相同,为了防止这种情况增加了hash码判断。
收藏文章数量从多到少与“把书读薄”是一个道理
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步