Hash、Hash表

Hash

Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),

通过散列算法,变换成固定长度的输出,该输出就是散列值。

这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,

而不可能从散列值来唯一的确定输入值。

MD5可以说是目前应用最广泛的Hash算法

Hash表(散列表)

散列表(Hashtable,也叫哈希表),是根据关键码值(Keyvalue)而直接进行访问的数据结构。也就是说,

它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放

记录的数组叫做散列表。

就是用关键字计算KEY值得到这个KEY值是放在Hash表中的那个表项中,再到这个表项中查找这个KEY的数据进行返回。

这样做就加快了查找效率(整个数据表找KEY的方式要进行所有的对比)。

Hash表是为了加快查找功能而引入的技术,当然在写入时也是要进行相关计算再插入的,对写效率有一点影响,但提

高了查找效率(互联网就是查找功能用得多),类似于数据库加索引一样,也是为了提高查找效率。