浅析哈希源码

简介: 浅析哈希源码

解析源码之前的几个疑问?


1.HashMap在什么时候开辟的内存?

2.不带参数的构造方法,默认哈希表的数组大小是多少?

3. HashMap<String,Integer> map = new HashMap<>(19);此时分配的内存是多少?

4.一般地,哈希表示数组+链表的方法进行存储,在满足什么条件的时候链表会变成树?

5.当HashMap扩容的时候需要注意什么?

6.hashcode与equals的区别?


下面就看看源码:

1667919360210.jpg

1667919371370.jpg

1667919388577.jpg

1667919402389.jpg

1667919423054.jpg


当看完以上的源码,我想1-4的问题就已经解决了。那么当HashMap扩容的时候需要注意什么?这个时候,每一个元素都要进行重新哈希。hashcode与equals有什么区别?两个对象的hashcode相同,equals不一定相同;两个对象的equals相同,hashcode一定相同。


相关文章
|
6月前
|
存储 Serverless C++
【C++高阶(五)】哈希思想--哈希表&哈希桶
【C++高阶(五)】哈希思想--哈希表&哈希桶
|
存储 算法 Shell
哈希表、哈希桶(C++实现)【STL】
哈希表、哈希桶(C++实现)【STL】
156 0
|
6月前
|
存储 算法 数据安全/隐私保护
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
80 0
|
11月前
|
存储 Serverless
不允许你还没有了解哈希表、哈希桶、哈希冲突的解决,如何避免冲突
不允许你还没有了解哈希表、哈希桶、哈希冲突的解决,如何避免冲突
85 0
|
算法 Java
|
存储 缓存 算法
【第五天】算法图解--哈希表(散列表)Hash函数
【第五天】算法图解--哈希表(散列表)Hash函数
|
Java
Java实现哈希表
Java实现哈希表
81 0
Java实现哈希表
|
存储 Java
Java数据结构——哈希表
Java数据结构——哈希表
Java数据结构——哈希表
|
算法 数据库 开发者
数据结构和算法-哈希表(散列)1|学习笔记
快速学习数据结构和算法-哈希表(散列)1
数据结构和算法-哈希表(散列)1|学习笔记