首页 > 其他分享 >HashMap长度为什么是2的幂

HashMap长度为什么是2的幂

时间:2023-02-09 13:35:31浏览次数:36  
标签:为什么 hash 运算 余数 取余 长度 HashMap

虽然hash值很多,范围很大,但是内存存不了那么大的数组,所以取hash的散列值的时候,需要用hash值,除以数组长度取余数。又由于取余数(%)的性能不如与运算(&),所以想用与运算来代替取余运算。最终得到的结论是,当除数为2的幂的情况下,与运算等价于取余运算。所以将hashMap的长度设置为2的幂。

 

标签:为什么,hash,运算,余数,取余,长度,HashMap
From: https://www.cnblogs.com/orangeJuiceRain/p/17104935.html

相关文章

  • 说出下面JavaScript代码运行的结果,说说为什么?
    functiontest(person){person.age=26;person={name:'abc',age:18}returnperson};constp1={name:'xyz',age:19};constp2=test(p1);consol......
  • 为什么我憎恨Linux系统?
    我是一个追求自由的人。是的,遗憾的是,人生来,本质上是没有自由的。可是吧,我问大家一个问题,我把你一辈子关在一个黑屋子里,只有你自己一个人,没有其他事物的陪伴,不让你出去和外界......
  • 用 Pulsar 开发多人小游戏(五):什么是 schema?为什么要用 schema?
    本文是《用Pulsar开发多人在线小游戏》的第三篇,配套源码和全部文档参见我的GitHub仓库play-with-pulsar以及我的文章列表。我推荐《数据密集型应用系统设计》这本......
  • HashMap 批量添加
    需要初始化一个常量HashMap,并希望在一行语句中完成。避免像这样的事情:hashMap.put("One",newInteger(1));//addingvalueintoHashMaphashMap.put("Two",newI......
  • 这就是为什么我不再使用 LeetCode.cn 而选择使用 LeetCode.com 的根本原因 All In One
    ThisisthefundamentalreasonwhyInolongeruseLeetCode.cnandchoosetouseLeetCode.comAllInOne这就是为什么我不再使用LeetCode.cn而选择使用LeetCod......
  • #技术人为什么写博客#
    博客是现代兴起的一种技术人或者大众互相分享的方式。工欲善其事,必先利其器。写博客是一种技术人提升自己的方式。这是帮助技术人在磨剑。日积月累只为锋芒展现。学技术哪有......
  • 求助,为什么过不了编译???
    #include<bits/stdc++.h>#include<bits/ptr_traits.h>usingnamespacestd;intval;structmy_iterator{ usingelement_type=int; usingvalue_type=int; usin......
  • 快速实现一个简单阉割版的HashMap
    简单实现一个底层数据结构为数组+链表的HashMap,不考虑链表长度超过8个时变为红黑树的情况。1.示例图2.分析需求put数据时:key值hash后的索引处没有元素,需要创建链......
  • HashMap源码分析 (基于JDK1.8)
    HashMap本文讲解的HashMap以及源代码都是基于JDK1.8背景引入数组优:读取修改快 劣:增加删除慢原因:数组可以根据下标直接定位到指定位置的数据进行读取和修改,但增加......
  • MongoDB--字符串长度计算
    MongoDB--字符串长度计算db.event_coll.aggregate([{$project:{"road":1,"length_Bytes":{$strLenBytes:"$road"},"length_CP":{$strLen......