在Java当中,HashMap的默认大小是16,而负载因子的大小是0.75,因此当元素超过16*0.75=12个的时候就会触发扩容。哈希表扩容是一个耗时的操作,因此我们可以指定其大小防止触发扩容从而提高程序的效率。 一般来说计算的方法是:(所需大小/负载因子) + 1。比如说我们需要存储100个元素,在使用默认负载因子的情况下,需要指定大小为100/0.75+1,约等于135个。 另外,负载因子也是可以在构造HashMap的时候传入参数的,当负载因子设置比较小的时候,触发扩容的阈值就比较低,哈希冲突的概率也会更低,这是空间换时间的思想。反之,就是时间换空间。 总的来说,还是遵循上文提到的公式:(所需大小/负载因子) + 1。
点赞 评论

相关推荐

牛客网
牛客企业服务