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

沃尔玛官网网上商城搜索引擎环境优化

沃尔玛官网网上商城,搜索引擎环境优化,新疆建设工程培训网,给网站做压力测试HashMap源码介绍 下面并非完整的源码,主要简单了解其流程。 1. 基本成员变量 哈希桶/开散列,链地址法/开链法是由:数组 链表(单链表) 红黑树(当数组长度>64 && 链表长度>8以后,链表变成红黑树&#xf…

HashMap源码介绍

下面并非完整的源码,主要简单了解其流程。

1. 基本成员变量

  • 哈希桶/开散列,链地址法/开链法是由:数组 + 链表(单链表) + 红黑树(当数组长度>=64 && 链表长度>=8以后,链表变成红黑树,树化和解树化)
  • java 会在冲突链表长度大于一定阈值后(当数组长度>=64 && 链表长度>=8以后),将链表转变为搜索树(红黑树)

2. 构造方法

  • 当调用不带参数的构造方法时,默认是没有分配数组大小的。但第一次put的时候,数组大小分配为了默认的16(put流程中有讲到)
  • 当调用带一个参数的构造方法时,其实内部调用了带两个参数的构造方法。

 带有两个参数的构造方法:

实现Map接口的整体集合给到HashMap,来进行构造map(用的比较少)

3. put方法的流程

前提:调用的是不带参数的构造方法

第一次put的流程:

  1. 先计算哈希值,计算哈希值的时候,右移和异或(^),是为了得到更均匀的数字。
  2. 判断数组是否为空,为空数组大小分配为默认的16
  3. 计算在数组中的位置,判断该位置是否为空,为空直接插入。不为空走下面介绍的代码。

注意:

  • 这里计算数组位置下标的方式 (n-1)&hash 是 等价于 key%len 。前提是n必须是2 的次幂
  • HashMap一般会保证数组的容量是 2的某个次幂

计算的数组位置不为空:

  1. 先判断是否为红黑树,是,按照红黑树的方式插入;不是走下一步
  2. 在该位置进行尾插,每次尾插后判断该链表是否要树化操作

4. get方法的流程

  • get方法流程与put方法流程类似,可自行查看源码。
  • 注意:get方法,存在解树化操作


好啦Y(^o^)Y,本节内容到此就结束了。下一篇内容一定会火速更新!!!

后续还会持续更新数据结构与算法方面的内容,还请大家多多关注本up,第一时间获取新鲜的知识。

如果觉得文章不错,别忘了一键三连哟!

http://www.dtcms.com/wzjs/476069.html

相关文章:

  • 佛山优化网站网站排名优化怎样做
  • 网站开发属于什么系统西安网站建设平台
  • 做网站是怎么赢利的优化关键词排名
  • 网站建设公司好长春网站优化
  • 昆明网站建设服务至上建站为应用技术
  • 上海网站空间租用seo大牛
  • 专业做制作网站文件外链生成网站
  • 成都网站建设有名的在百度上打广告找谁推广产品
  • 网站建设视频演示my63777免费域名查询2023年
  • 近期军事新闻广州网站优化公司如何
  • wordpress全站ajax方法营销推广平台
  • 凡科网做网站的图片网络宣传推广方案
  • 上海网站建设优化公司旅游企业seo官网分析报告
  • 那些网站是做俄罗斯鞋子宁波网站制作与推广价格
  • 党风廉政建设网站网络舆情分析研判报告
  • 阿里云云服务器官网石家庄seo推广
  • 做电商需要学什么山西seo推广
  • 百度推广怎么做效果好南宁排名seo公司
  • 做网站公司哪家正规怎么自己制作一个网站
  • 网站规划与设计案例seo最强
  • 找美国的建站公司做网站公关团队
  • 安溪哪里有学做网站怎么搭建自己的网站
  • 论坛网站论坛网站建设建设2023年适合小学生的新闻有哪些
  • 外贸网站建设案例网站推广关键词排名优化
  • 怎么把自己笔记本做服务器做个网站技术培训学校机构
  • jcms网站建设网页制作在线生成
  • 做企业手机网站国外seo大神
  • 无锡手机网站制作百度站长平台如何添加网站
  • 社区网站如何做拼多多代运营公司十大排名
  • 手机网站logo成都公司建站模板