HashMap源码解析

 时间:2024-11-05 18:59:38

1、首先,我看下hashmap的类定义,发现其源于这些接口Map, Cloneable, Serializable

HashMap源码解析

2、之后我们看下put方法的实现

HashMap源码解析

3、方法一进来就是判断table,看一下table的定义

HashMap源码解析

4、之后根据key获得哈希值,在获得table数组的下标,获得Entry对象,我们看下entry的定义

HashMap源码解析

5、可以发现这是一个链表,然后程序去遍历这个链表,如果发现链表中存在值,就更新链表数据,结束

HashMap源码解析

6、如果链表中没有对应的数据,那就新增一条数据

HashMap源码解析

7、我们看下addEntry方法,如果存储空间不足,将table数组扩容

HashMap源码解析

8、最后我们看下createEntry方法,取得原数组下的链表,把新值放在链表头,把新的链表放到数组下,程序结束

HashMap源码解析
  • Redis新版本(v6.0及之后)安装配置图文教程(一)
  • CSS实现英文段落首字母放大突出显示效果
  • 如何在Studio 3T for MongoDB创建SQL查询
  • 如何利用Java代码实现Set集合转换成Map集合
  • Maven插件--Tomcat插件的使用
  • 热门搜索
    普通话手抄报图片 关于禁毒的手抄报 八礼四仪手抄报 崇尚科学反对邪教手抄报 厉行节约手抄报 核心价值观手抄报 爱牙手抄报 防溺水手抄报简单漂亮 抗疫情手抄报 红星照耀中国手抄报