HashMap的默认长度为什么是16?其他数字行不行?

之前在网上看到的一个面试题,觉得挺有意思的,找了相关资料,看了HashMap的源码,今天有时间,写上来。(JDK版本1.9,其他版本的源码可能有出入) 首先来看HashMap中的一段代码 注释就说的很清楚了,默认的初始容量 - 必须是2的幂。也就是说,HashMap的长度自己定义的时候,只要是2的次幂就行。那么为什么要是2的次幂?3的次幂行不行?我们接着往下看。 来看HashMap的put方法:
相关文章
相关标签/搜索