1 hash函数的性质
(1)输入域是无穷的,但是输出域是有限的
(2)不是随机产生的输出,相同的输入一定对应相同的输出
(3)不同的输入可能会导致相同的输出(hash碰撞)
(4)输出的值在整个输出域几乎是均匀分布的(离散性)
2 hash表
hash表的存储数据如下图所示:
每个字符是随机均匀分布在长度为10的数组上的,因为字符多,那么在相同位置字符使用链表连接的(JDK1.8之前,从1.8之后用红黑树连接)
Java中有hashMap和hashSet这两个其实从结构上来说是一样的,可以认为value只不过是key的伴随数据而已,也就是封装的对象不同,但是基本的存储结构还是一样的。
0
原文:https://www.cnblogs.com/youngao/p/12077764.html