为什么面试要问hashmap 的原理?

 我来答
你好啊月亮
推荐于2019-10-16 · TA获得超过2.6万个赞
知道小有建树答主
回答量:552
采纳率:100%
帮助的人:21.6万
展开全部

“HashMap是基于hashing的原理,我们使用put(key, value)存储对象到HashMap中,使用get(key)从HashMap中获取对象。

  1. 从这里开始,真正的困惑开始了,一些面试者会回答因为hashcode相同,所以两个对象是相等的,HashMap将会抛出异常,或者不会存储它们。然后面试官可能会提醒他们有equals()和hashCode两个方法,并告诉他们两个对象就算hashcode相同,但是它们可能并不相等。

  2. 一些面试者可能就此放弃,而另外一些还能继续挺进,他们回答“因为hashcode相同,所以它们的bucket位置相同,‘碰撞’会发生。因为HashMap使用LinkedList存储对象,这个Entry(包含有键值对的Map.Entry对象)会存储在LinkedList中。

  3. ”这个答案非常的合理,虽然有很多种处理碰撞的方法,这种方法是最简单的,也正是HashMap的处理方法。但“如果两个键的hashcode相同,你如何获取值对象” 。

  4. 面试者会回答:当我们调用get()方法,HashMap会使用键对象的hashcode找到bucket位置,然后获取值对象。面试官提醒他如果有两个值对象储存在同一个bucket,他给出答案:将会遍历LinkedList直到找到值对象。

面试通
2024-11-19 广告
快速面试助手是武汉智联世界科技有限公司开发的高效面试工具。它利用人工智能技术,帮助HR和企业快速筛选简历,智能匹配岗位需求,实现初步面试自动化。通过预设问题库和自动评分系统,快速面试助手能大幅提升面试效率,减轻HR负担。同时,它还能提供面试... 点击进入详情页
本回答由面试通提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式