Hash(散列函数)

广义的Hash

把任意长度的输入通过散列算法变换成固定长度的输出,该输出值就是散列值。
特点:

  1. 压缩映射,hash值远远小于输入值
  2. 不能反向。不同的输入可能会散列出相同的输出

总结:将任意长度的消息压缩到某一固定长度的消息摘要的函数。

Java的Hash值

  1. hash值用来在散列存储结构中确定对象的存储地址,以来提高对象的查询效率。
    如HashMap、HashTable等。
    2、如果两个对象相同,那么两者的hash值相等。
    But如果两个对象的hash值相等,但那不一定两个对象相同。
    3、如果要重写对象的equals的方法,那么尽量重写对象的hashCode方法。

String的hashCode

在了解hash值的含义后,在进行hash计算时,我们希望尽量减小生产重复hash值的概率,使得数据更离散一些。(因为如果重复的hash值太多,散列存储结构中同一hash值映射的对象也会更多,导致降低查询效率。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容