在计算机系统中,数据集合能有效进行“增、删、改、查”操作要求该集合被有序存储,实现有序存储仅需要各元素相互区分。但是,数据集合中蕴含的全部信息量,要远远大于仅实现各元素相互区分的信息量。这是引入哈希表的前提。
哈希表有三大要素:主键、哈希函数、哈希桶。主键是输入,哈希函数是映射关系,主键的集合可视为哈希函数的定义域,哈希桶用来存储输出,可视为“值域”。通过哈希函数,数据集合被有损压缩至一定范围,对有序存储无用的信息被过滤掉,仅保留足以相互区分以保证有序存储的信息。哈希函数作用亦是熵增过程,数据集合的混乱度增加,故其逆过程极为困难。一个好的哈希函数,应在保证各元素区分度的前提下,尽可能多地剔除掉无用信息。