给彩票网站做排名违法吗,建设音乐网站的目的,wordpress 路由,餐饮环境评估在哪个网站做文章底部有个人公众号#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享#xff1f; 踩过的坑没必要让别人在再踩#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官#xff1a; 介绍一下HashMap底层的… 文章底部有个人公众号热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享 踩过的坑没必要让别人在再踩自己复盘也能加深记忆。利己利人、所谓双赢。 面试官 介绍一下HashMap底层的实现原理
参考答案
它基于hash算法通过put方法和get方法存储和获取对象。
存储对象时我们将K/V传给put方法时它调用K的hashCode计算hash从而得到bucket位置进一步存储HashMap会根据当前bucket的占用情况自动调整容量(超过Load Facotr则resize为原来的2倍)。获取对象时我们将K传给get它调用hashCode计算hash从而得到bucket位置并进一步调用equals()方法确定键值对。
如果发生碰撞的时候HashMap通过链表将产生碰撞冲突的元素组织起来。在Java 8中如果一个bucket中碰撞冲突的元素超过某个限制(默认是8)则使用红黑树来替换链表从而提高速度。