首页 > 其他 > 详细

HashMap的实现原理

时间:2020-06-20 14:24:55      阅读:56      评论:0      收藏:0      [点我收藏+]

通过put和get的存储和获取对象,当将键值对传递给put方法时,它调用键对象的hashcode方法来计算hashcode,然后找到bucket位置来存储值对象,当获取对象时,通过键对象的equals方法找到正确的键值对,然后返回值对象,hashmap使用链表来解决碰撞问题,当发生碰撞,对象将会储存在链表的下一个节点中。hashmap在每个链表节点中储存键值对对象,当两个不同的键对象的hashcode相同时,它们会存储在同一个bucket位置的链表中,键对象的equals方法用来找到键值对。(当往hashmap中put元素时,首先根据key的hashcode重新计算hash值,根据hash值得到这个元素在数组中的位置(下标),如果该数组在该位置上已经存放了其他元素,那么在这个位置的元素将以链表的形式存放,新加入的放在链头,最先加入的放入链尾,如果数组中该位置没有元素,那直接将该元素放到数组的该位置上)

HashMap的实现原理

原文:https://www.cnblogs.com/mandy3651/p/13168345.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!