HashMap,一个很常用的集合,Key、Value格式,就是哈希表的具体体现
1.public HashMap(int initialCapacity, float loadFactor)
2.public HashMap(int initialCapacity)
3.公共HashMap()
第一种初始化方法中,第一个参数是初始化大小,也就是数组的大小,数组的大小呢?什么数组大小?我们先来看一段代码:
从上面的代码可以推断,HashMap其实是一个“链表哈希”的数据结构,也就是数组和链表的组合。具体转换图为:
说明:哈希值数组的中值来自map.put(key, value)中的key。首先根据key,计算出对应的hash值。如果hash相同,则判断后续链表中是否存在相同的key。如果不是,则添加一个新值,否则直接覆盖原值并返回
当然,如果是添加的话,需要判断长度是否大于初始大小。如果大于原来的长度,需要扩容到原来的两倍大小,然后重新计算key在链表中的位置,重新创建一个Entry,指向数组的哈希桶索引Location
以上就是关于“小白必看:HashMap底层实现原理”的介绍,大家如果对此比较感兴趣,想了解更多相关知识,不妨来关注一下极悦的HashMap底层实现原理视频教程,里面的课程内容从浅到深,通俗易懂,即使没有基础也可以听懂,希望对大家的学习能够有所帮助。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习