这个问题主要还是记录下别人回答的链接,之所以单独写一个文章,仅仅是记录以及更好检索。
HashTable的默认大小是质数,HashMap默认大小是2的倍数,这是为什么呢?
传送门:http://stackoverflow.com/questions/1145217/why-should-hash-functions-use-a-prime-number-modulus
以上的链接是讨论质数问题,第一个高赞的回答,讨论了质数,2的次幂以及String hashcode为什么用31的问题,另又找到了一个链接是关于HashMap的hashcode问题,传送门:https://www.javaspecialists.eu/archive/Issue054.html(https://www.javaspecialists.eu/archive/Issue054.html)
这个文章是sun开发者写的2002年的文章,这个文章给出了hashcode的一些基准测试代码,也简单描述了为什么用2的次幂。
网友评论