码迷,mamicode.com
首页 > 其他好文 > 详细

hashmap的一些基础原理

时间:2018-10-28 22:05:14      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:查找   转换   分布   info   复杂   基础   技术分享   就是   ima   

关于浏览hashmap基础原理之后的一些汇总:
1、在JDK8及以后的版本中,HashMap引入了红黑树结构,其底层的数据结构变成了数组+链表或数组+红黑树。添加元素时,若桶中链表个数超过8,链表会转换成红黑树
技术分享图片

具体原理为什么是8呢:泊松分布、概率学问题
2、红黑树,来源于二叉查找树,但是当二叉查找树最坏的情况会变成链表,所以引入红黑色的概念,而红黑树在插入跟删除时候主要数据的操作排列方式是左旋或者右旋,红黑树的查询时间复杂度是O(log N)
3、hashmap的初始容量是16,加载因子是0.75(泊松分布),当数据容量为16*0.75=12时,会进行数据的扩容,扩容是翻倍=32,但是还有一种扩容的情况,就是当数据大于8时候由链表转为树形存储时候,当检测到容量小于64时候,会进行扩容,因为数据过长原因还是由于空间不足。

hashmap的一些基础原理

标签:查找   转换   分布   info   复杂   基础   技术分享   就是   ima   

原文地址:https://www.cnblogs.com/wengshuhang/p/9867090.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!