美文网首页
Java - HashMap扩容为什么选用2倍

Java - HashMap扩容为什么选用2倍

作者: 夹胡碰 | 来源:发表于2021-01-14 23:36 被阅读0次
  1. 做除余的时候2的倍数可以直接使用&进行快速计算

例如: 19%16可以写成19&(16-1),位运算更高效

  1. 扩容的时候只移动大约一半的数据,并且不会造成扩容之后碰撞更加严重的情况

例如: hash值为4和8的值存放在size为4的数组中,则两个元素都存放在0下标的数据中,当以2倍扩容时,size变为8,8依然存放在0下标位置上,而4移动到下标为4的位置上,这样不仅达到了扩容的效果,还减少了hash碰撞,一举两得。

相关文章

  • 2020-04-03 Java HashMap的实现原理的文章

    HashMap的扩容机制---resize() HashMap底层实现原理 扩容机制 Java中HashMap的实现原理

  • Java - HashMap扩容为什么选用2倍

    做除余的时候2的倍数可以直接使用&进行快速计算 例如: 19%16可以写成19&(16-1),位运算更高效 扩容的...

  • Java - HashMap扩容为什么选用2倍

    做除余的时候2的倍数可以直接使用&进行快速计算 hashmap桶的下标,就是根据hashcode值取余来获取到具体...

  • java一些基础知识点

    java基础 hashmap: 1,hashmap:构成原理,扩容过程,put过程,为什么长度总是2的N次方,是否...

  • 美团面试问的题目

    1、hashMap的2倍扩容机制为什么是2倍 2、在java8和java7中,hashMap的hash函数有什么不...

  • HashMap知识

    HashMap的扩容机制---resize() - 割肉机 - 博客园 Java源码分析:HashMap 1.8 ...

  • 高级Java工程师面试必备

    JDK基础 Java集合类数据库结构,HashMap ConcurrentHashMap HashMap扩容的实现...

  • hashmap扩容

    面试官:”用HashMap存1w条数据,构造时传10000会触发扩容吗? Java 集合的扩容 HashMap 算...

  • HashMap 的扩容机制

    每个 Java 程序员都得了解 HashMap 的扩容机制美团一面:说说 HashMap 的扩容机制吧看完这篇,如...

  • 蘑菇街电话一面(8.30)

    自我介绍 怎么学习Java 有哪些集合 HashMap为什么不是线程安全 扩容会变成环形链表。 Concurren...

网友评论

      本文标题:Java - HashMap扩容为什么选用2倍

      本文链接:https://www.haomeiwen.com/subject/kizbaktx.html