当前位置: 首页 > 面试题库 >

请你解释HashMap的容量为什么是2的n次幂?

易风华
2023-03-14
本文向大家介绍请你解释HashMap的容量为什么是2的n次幂?相关面试题,主要包含被问及请你解释HashMap的容量为什么是2的n次幂?时的应答技巧和注意事项,需要的朋友参考一下

考点:集合

负载因子默认是0.75, 2^n是为了让散列更加均匀,例如出现极端情况都散列在数组中的一个下标,那么hashmap会由O(1)复杂退化为O(n)的。

 类似资料:
  • 本文向大家介绍HashMap 的长度为什么是2的幂次方?相关面试题,主要包含被问及HashMap 的长度为什么是2的幂次方?时的应答技巧和注意事项,需要的朋友参考一下 为了能让 HashMap 存取高效,尽量较少碰撞,也就是要尽量把数据分配均匀。我们上面也讲到了过了,Hash 值的范围值-2147483648到2147483647,前后加起来大概40亿的映射空间,只要哈希函数映射得比较均匀松散,一

  • 问题内容: java.util.Random源代码的第294行说 为什么是这样? 问题答案: 该描述并不完全准确,因为0不是2的幂。更好的说法是 当n是2的幂或2的幂的负数或零时。 如果n是2的幂,则二进制中的n是单个1,后跟零。-n为2的补数是倒数+ 1,因此位排成一行 要了解其工作原理,请将二进制补码视为逆+ 1。 因为当您添加一个得到两个的补码时,您会一直进行到一个。 如果n不是2的幂,则结

  • 问题内容: 看到以下内容时,我正在浏览Java的HashMap源代码 我的问题是为什么这个要求首先存在?我还看到,允许使用自定义功能创建HashMap的构造函数将其转换为2的幂: 为什么容量总是必须是2的幂? 另外,执行自动重新哈希处理后,究竟会发生什么?哈希函数也改变了吗? 问题答案: 映射必须计算出将哪个内部表索引用于任何给定键,并将任何值(可能为负)映射到range中的值。when 是2的幂

  • 本文向大家介绍请你解释一下,什么是Web Service?相关面试题,主要包含被问及请你解释一下,什么是Web Service?时的应答技巧和注意事项,需要的朋友参考一下 考察点:web service   从表面上看,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法透明的调用这个应用程序,不需要了解它的任何细节,跟你使用的编程

  • 本文向大家介绍请你解释一下什么是线程池(thread pool)?相关面试题,主要包含被问及请你解释一下什么是线程池(thread pool)?时的应答技巧和注意事项,需要的朋友参考一下 考察点:线程池 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效

  • 问题内容: 即使int的最大值是2 31 -1,为什么Java HashMap的最大容量是1 << 30而不是1 << 31 ?最大容量初始化为 问题答案: Java使用带符号的整数,这意味着第一位用于存储数字的符号(正/负)。 一个四字节整数具有32位,其中数字部分由于有符号位而只能跨越31位。这将数字范围限制为 2 ^ 31-1 (由于包含0)到 -(2 ^ 31) 。