zoukankan      html  css  js  c++  java
  • HashMap的实现原理总结

    HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。

    当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。

    当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。

    HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。

    HashMap在每个链表节点中储存键值对对象。

     

     

     

     

     

    注:碰撞问题:因为hashcode相同,所以它们的bucket位置相同,‘碰撞’会发生。因为HashMap使用链表存储对象,这个Entry(包含有键值对的Map.Entry对象)会存储在链表中。。

  • 相关阅读:
    Day11作业
    day12作业
    samba共享服务
    PHP7 redis扩展安装
    linux lin命令
    PhpStorm,Pycharm,Goland破解
    PHP规范PSR2
    PHP 过滤器(Filter)
    Linux下Redis的安装与配置
    linux命令汇总
  • 原文地址:https://www.cnblogs.com/MJyc/p/7566820.html
Copyright © 2011-2022 走看看