哈希是什么?为什么哈希存取比较快?
不太恰当的比喻: XM 指的是“小明”,也指的是“小萌” XM就是哈希值,小明和小萌就是拥有同一个哈希值的,存在同一个链表的元素。 想要获取小萌,首先使用hashcode获取到这两个人,然后再通过equals获取到小萌。 个人理解 哈希表其实就是一个一维数组,而数组中的每一个元素都是一个单向链表而已。这样的数据结构 解决了数组的增删元素的不足和链表的查询效率的不足 。 数组是存在连续的存储空间,而链表的存储空间不连续 -------------------------------- 哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。 哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。 哈希通过将单向数学函数(有时称为“哈希算法”