HashMap的初始容量为什么设为16

length 的值为2 的整数次幂,h & (length - 1)相当于对 length 取模。这样提高了效率也使得数据分布更加均匀。

为什么会更加均匀?
length的值为偶数,length - 1 为奇数,则二进制位的最后以为为1,这样保证了h & (length - 1)的二进制数最后一位可能为1,也可能为0。如果为length为奇数,那么就会浪费一半的空间。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Java集合:HashMap源码剖析 一、HashMap概述 二、HashMap的数据结构 三、HashMap源码...
    记住时光阅读 774评论 2 1
  • 一、HashMap概述 HashMap基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用nul...
    小陈阿飞阅读 672评论 0 2
  • 如果说Java的HashMap是数组+链表,那么JDK 8之后就是数组+链表+红黑树组成了HashMap。 在之前...
    Java_Explorer阅读 1,026评论 1 5
  • HashMap HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,...
    史路比阅读 320评论 0 6
  • 1.早起✔ 2.锻炼半小时或陪儿子半小时✘(赶时间起床就走) 3.看书半小时✔ 4.上班路上自行演讲✔(跟媳妇聊了...
    裴一文阅读 329评论 2 2

友情链接更多精彩内容