java HashMap的capacity选取用意

HashMap的capacity(桶总数)是2的n次方。

计算hashCode,hash & (2^n - 1)。

初看会觉得与运算比取余快,其实是不会为了这一点开销而这么做。

(2^n-1)是梅森素数。hash算法用素数可以减少hash冲突,而梅森素数是产生素数的快速方法,是有这个意图在里面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HashMap 是 Java 面试必考的知识点,面试官从这个小知识点就可以了解我们对 Java 基础的掌握程度。网...
    野狗子嗷嗷嗷阅读 6,714评论 9 107
  • 实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算...
    曹振华阅读 2,530评论 1 37
  • “剖析幽默恰似解剖青蛙,虽可拆解细查,但在此过程中幽默必定趣味全消,恰似青蛙必无活路。而所得的五脏六腑,除可供纯然...
    游识猷阅读 756评论 0 11
  • 获取授权 文集:品读《三国志·姜维传》番外篇 文集:谷离子 —— 品读《三国志·姜维传》 文集:【连载】《极简秦汉...
    谷离子阅读 1,620评论 2 7
  • 前天是感恩节;昨天,黑色星期五;今天星期六。又一周的周末毫无缘由的便再次出现了。生活好像一直都是这样子,一天天的从...
    西北特仑苏阅读 260评论 0 0