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

ppt模板免费下载网站不需要登录中小学做课题研究的网站

ppt模板免费下载网站不需要登录,中小学做课题研究的网站,网站后端开发语言,专门做资产负债表结构分析的网站转载自 玻璃猫 程序员小灰众所周知#xff0c;HashMap是一个用于存储Key-Value键值对的集合#xff0c;每一个键值对也叫做Entry。这些个键值对#xff08;Entry#xff09;分散存储在一个数组当中#xff0c;这个数组就是HashMap的主干。 HashMap数组每一个元素的初始值都…转载自 玻璃猫 程序员小灰众所周知HashMap是一个用于存储Key-Value键值对的集合每一个键值对也叫做Entry。这些个键值对Entry分散存储在一个数组当中这个数组就是HashMap的主干。 HashMap数组每一个元素的初始值都是Null。对于HashMap我们最常使用的是两个方法Get 和 Put。1.Put方法的原理 调用Put方法的时候发生了什么呢 比如调用 hashMap.put(apple, 0) 插入一个Key为“apple的元素。这时候我们需要利用一个哈希函数来确定Entry的插入位置index index   Hash“apple” 假定最后计算出的index是2那么结果如下但是因为HashMap的长度是有限的当插入的Entry越来越多时再完美的Hash函数也难免会出现index冲突的情况。比如下面这样这时候该怎么办呢我们可以利用链表来解决。 HashMap数组的每一个元素不止是一个Entry对象也是一个链表的头节点。每一个Entry对象通过Next指针指向它的下一个Entry节点。当新来的Entry映射到冲突的数组位置时只需要插入到对应的链表即可需要注意的是新来的Entry节点插入链表时使用的是“头插法”。至于为什么不插入链表尾部后面会有解释。2.Get方法的原理 使用Get方法根据Key来查找Value的时候发生了什么呢 首先会把输入的Key做一次Hash映射得到对应的index index   Hash“apple” 由于刚才所说的Hash冲突同一个位置有可能匹配到多个Entry这时候就需要顺着对应链表的头节点一个一个向下来查找。假设我们要查找的Key是“apple”第一步我们查看的是头节点Entry6Entry6的Key是banana显然不是我们要找的结果。 第二步我们查看的是Next节点Entry1Entry1的Key是apple正是我们要找的结果。 之所以把Entry6放在头节点是因为HashMap的发明者认为后插入的Entry被查找的可能性更大。————————————之前说过从Key映射到HashMap数组的对应位置会用到一个Hash函数 index   Hash“apple” 如何实现一个尽量均匀分布的Hash函数呢我们通过利用Key的HashCode值来做某种运算。index   HashCodeKey % Length ?如何进行位运算呢有如下的公式Length是HashMap的长度 index   HashCodeKey   Length - 1  下面我们以值为“book”的Key来演示整个过程 1.计算book的hashcode结果为十进制的3029737二进制的101110001110101110 1001。 2.假定HashMap长度是默认的16计算Length-1的结果为十进制的15二进制的1111。 3.把以上两个结果做与运算101110001110101110 1001  1111 1001十进制是9所以 index9。 可以说Hash算法最终得到的index结果完全取决于Key的Hashcode值的最后几位。假设HashMap的长度是10重复刚才的运算步骤单独看这个结果表面上并没有问题。我们再来尝试一个新的HashCode  1011100011101011101011 让我们再换一个HashCode 101110001110101110 1111 试试  是的虽然HashCode的倒数第二第三位从0变成了1但是运算的结果都是1001。也就是说当HashMap长度为10的时候有些index结果的出现几率会更大而有些index结果永远不会出现比如0111 这样显然不符合Hash算法均匀分布的原则。 反观长度16或者其他2的幂Length-1的值是所有二进制位全为1这种情况下index的结果等同于HashCode后几位的值。只要输入的HashCode本身分布均匀Hash算法的结果就是均匀的。—————END—————
http://www.yutouwan.com/news/206267/

相关文章:

  • 国外博客写作网站重庆企业网站
  • 网站广告图做多大东莞技术支持 骏域网站建设
  • 网站cname解析谁做网站做的比较可信
  • seo免费优化网站三丰云怎么做网站
  • 最好网站建设公司运营团队宿迁房价下跌最惨小区
  • 国家城乡与住房建设部网站想建一个网站
  • 防水网站建设浙江省旅游企业网站建设情况
  • 手机网站有免费做的吗?做网站 sql 用哪种
  • 外贸出口建站网站上的广告怎么做
  • 怎么爬虫做网站注册公司材料怎么准备
  • 杭州设计制作网站公司网站建设模板
  • 网站建设前台与后台最新技术wordpress注册邮箱怎么修改
  • 合肥 网站设计wordpress 端口映射
  • 网站备案 自己的服务器家庭装修效果图大全2021图片
  • 个人网站导航模版seo教学网seo
  • 电商网站订烟网站平台建设包括哪些
  • 福安网站开发成都网站建设公司优势
  • 济南网站建设优化网站建设公司怎么推广
  • 网站服务器试用市场推广怎么写
  • 建材网站建设 南宁房产证
  • 专门帮忙做网站的公司河南工程建设信息网查
  • 如何做电影网站资源手机笑话网站源码
  • html网站开发案例网页编辑排版
  • 点样做网站自助建站教程
  • 免费1级做看网站网站设计建设维护
  • 大连网站设计菲尔莱斯哪家公司做网站便宜
  • 长沙企业建网站网站设计科技有限公司
  • 福州服务类网站建设西安it培训机构
  • 山西临汾建设局网站建筑模板规格尺寸
  • 贵阳网站设计报价苏州住建局官网平台