当前位置: 首页 > news >正文

网页设计与网站建设实训目的小程序爱成毅的微博

网页设计与网站建设实训目的,小程序爱成毅的微博,扁平化手机网站,山东省建设厅网站电话查询HashMap的底层结构在jdk1.7中由数组链表实现,在jdk1.8中由数组链表红黑树实现,以数组链表的结构为例。 JDK1.8之前Put方法: JDK1.8之后Put方法: HashMap基于哈希表的Map接口实现,是以key-value存储形式存在&#xff0c…

HashMap的底层结构在jdk1.7中由数组+链表实现,在jdk1.8中由数组+链表+红黑树实现,以数组+链表的结构为例。

JDK1.8之前Put方法:

JDK1.8之后Put方法:

HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。

JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突(两个对象调用的hashCode方法计算的哈希码值一致导致计算的数组索引值相同)而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(或者红黑树的边界值,默认为 8)并且当前数组的长度大于64时,此时此索引位置上的所有数据改为使用红黑树存储。

补充:将链表转换成红黑树前会判断,即使阈值大于8,但是数组长度小于64,此时并不会将链表变为红黑树。而是选择进行数组扩容。

这样做的目的是因为数组比较小,尽量避开红黑树结构,这种情况下变为红黑树结构,反而会降低效率,因为红黑树需要进行左旋,右旋,变色这些操作来保持平衡 。同时数组长度小于64时,搜索时间相对要快些。所以综上所述为了提高性能和减少搜索时间,底层在阈值大于8并且数组长度大于64时,链表才转换为红黑树。具体可以参考 treeifyBin方法。

当然虽然增了红黑树作为底层数据结构,结构变得复杂了,但是阈值大于8并且数组长度大于64时,链表转换为红黑树时,效率也变的更高效。

http://www.yayakq.cn/news/347724/

相关文章:

  • 西瓜网络深圳网站建设 东莞网站建设北京各大公司名称
  • 个人主页搭建seo公司的选上海百首网络
  • 论坛网站开发成本百度云网盘资源搜索引擎
  • 政务系统网站建设帮我注册一个账号
  • 廊坊大城网站建设wordpress 4.8.2 漏洞
  • 建设vip视频解析网站违法吗自己如何创立网站
  • 淘宝网站建设与规划好乐买的网站推广方式
  • 为什么python不适合开发网站西樵网站建设公司
  • 淘宝客网站建设平台全国最大的机械设备采购平台
  • 网站在线帮助如何设计江苏中淮建设集团有限公司网站
  • 网站建设开发的主要流程郴州市住房建设局门户网站
  • 美空间网站陇南市建设局官方网站
  • 网站开发专业成功人士高端定制外贸网站
  • 如何构建企业网站h5app开发教程
  • 如何提高网站打开速度网络营销pdf
  • 化工类 网站模板开封 网站建设 网络推广
  • 怎样申请建网站沈阳大型网站设计公司
  • 四川圣泽建设集团有限公司网站文山网站建设公司
  • 免费的黄冈网站代码百度推广 个人网站
  • 温州平台网站建设邢台视频优化效果
  • 网站建设百度索引网站建设知识文章
  • 做暧暧网站免费美工做图片网站
  • 网页数据可视化设计案例南宁优化推广服务
  • 企业建设企业网站的好处有哪些营销型网站的建设与推广辅导记录
  • 网站建设的技能有哪些网络事件营销
  • 英文 edm营销 的网站 与 工具企业常用的网络营销方法
  • 备案中又需要建设网站甘肃省住房和城乡建设厅网站首页
  • 成都制作网站软件临沂seo公司
  • 网站有后台更新不了东道设计应届生收入
  • 平台网站开发简报青岛建站开发