为什么HashMap的初始容量是16
到底什么是hash呢?hash碰撞?为什么HashMap的初始容量是16? https://blog.csdn.net/qq_35583089/article/details/80048285 一 ,到底什么是hash呢? 作者:知乎用户 链接:https://www.zhihu.com/question/26762707/answer/40119521 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 hash(散列、杂凑)函数,是将任意长度的数据映射到有限长度的域上。直观解释起来,就是对一串数据m进行杂糅,输出另一段固定长度的数据h,作为这段数据的特征(指纹)。 也就是说,无论数据块m有多大,其输出值h为固定长度。到底是什么原理?将m分成固定长度(如128位),依次进行hash运算,然后用不同的方法迭代即可(如前一块的hash值与后一块的hash值进行异或)。如果不够128位怎么办?用0补全或者用1补全随意,算法中约定好就可以了。 原问题回答完毕。但是既然要说hash算法,不妨说的更透彻些。 =================分割线========== 由于用途的不同,hash在数据结构中的含义和密码学中的含义并不相同,所以在这两种不同的领域里,算法的设计侧重点也不同。 预备小知识: 抗碰撞能力:对于任意两个不同的数据块