HashMap与HashSet的底层实现原理

本文介绍了Java中HashMap的底层实现原理,包括HashMap的基本原理、属性、构造方法、哈希函数、扩容机制,以及HashSet的基本实现。HashMap是基于哈希表实现的,使用数组+链表+红黑树,而HashSet基于HashMap实现,存储元素作为HashMap的key。
摘要由CSDN通过智能技术生成

⭐️前面的话⭐️

本篇文章将介绍Java中HashMap的底层实现原理,有关HashMap为数组开辟内存的时期,默认的容量,默认负载因子,树化的条件,HashMap的扩容机制,put方法的过程以及HashMap中的哈希函数。

小贴士:博主推荐->学习面试刷题必用工具

📒博客主页:未见花闻的博客主页
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📌本文由未见花闻原创,CSDN首发!
📆首发时间:🌴2022年8月14日🌴
✉️坚持和努力一定能换来诗与远方!
💭推荐书籍:📚《数据结构》,📚《算法导论》
💬参考在线编程网站:🌐牛客网🌐力扣
博主的码云gitee,平常博主写的程序代码都在里面。
博主的github,平常博主写的程序代码都在里面。
🍭作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!



注意事项:博主安利一款刷题面试的神器,如果有小伙伴还没有注册牛客,可以点击下方链接进行注册,注册完就能立即刷题了。不仅是刷题,上面还有很多有关就业的面经,面试题库,以及名企的模拟面试,我非常推荐它,博主自己用的也很多,也刷了不少题了!下图可以作证:
1

注册地址:牛客网

1

有关任何问题都可以与博主交流,你可以在评论区留言,也可以私信我,更可以加上博主的vx与博主一对一交流(文章最下方有)。

封面区


1.HashMap以及HashMap的基本原理

1.1什么是HashMap?

HashMap是Java集合框架中Map容器的一个实现类,它的底层是使用哈希表实现的,更加具体地说在jdk7中采用数组+链表实现,在jdk8中采用数组+链表+红黑树实现。

Map代表具有映射关系(key-value)的集合,其所有的key是一个Set集合(key值不能重复),即key无序且不能重复,而HashMap就是Map接口下的一个实现类,HashMap是一个储存键值对(EntrySet)的集合,并且支持储存key/value为null的元素。

下面我们基于jdk8来说一说HashMap的基本原理。

1.2HashMap的属性

HashMap对象被构造时,初始的默认容量为1<<4,也就是16,并且必须是2的幂(这与哈希函数有关)。

static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16

HashMap最大的容量为1<<30,也就是 2 30 2^{30} 230

static final int MAXIMUM_CAPACITY = 1 << 30;

HashMap默认的负载因子为0.75

static 
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未见花闻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值