HashMap的默認長度爲什麼是16?其他數字行不行?

之前在網上看到的一個面試題,覺得挺有意思的,找了相關資料,看了HashMap的源碼,今天有時間,寫上來。(JDK版本1.9,其他版本的源碼可能有出入) 首先來看HashMap中的一段代碼 註釋就說的很清楚了,默認的初始容量 - 必須是2的冪。也就是說,HashMap的長度自己定義的時候,只要是2的次冪就行。那麼爲什麼要是2的次冪?3的次冪行不行?我們接着往下看。 來看HashMap的put方法:
相關文章
相關標籤/搜索