A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© z_one 中级黑马   /  2015-11-6 16:29  /  403 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。 HashMap在每个链表节点中储存键值对对象。
当两个不同的键对象的hashcode相同时会发生什么? 它们会储存在同一个bucket位置的链表中。键对象的equals()方法用来找到键值对。

2 个回复

倒序浏览
66666666666
回复 使用道具 举报
看起来好深奥啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马