哈希加密算法原理 哈希值是什么,又有什么的应用?
哈希值是什么,又有什么的应用?
哈希码是从任何对象生成的数字。这是允许在哈希表中快速存储/检索对象的方法。
想象一下下面的例子:
在你面前的桌子上,有九个盒子,每个盒子上都标有1到9的数字。这些盒子里也有很多不同的东西,但是一旦它们到了,你就需要尽快找到它们。
您需要的是一种方法,可以立即决定将每个对象放入哪个框中。你决定找到卷心菜,找出它在哪个盒子里,然后直接去那个盒子。
现在假设您不想索引,您希望能够立即找到对象所在的框。
在本例中,我们使用一个非常简单的方法来完成此任务—对象名称中的字母数。所以卷心菜去7号包厢,豌豆去3号包厢,火箭去6号包厢,班卓琴去5号包厢,依此类推。犀牛呢?它有10个字符,所以让我们稍微改变一下我们的算法,然后“换行”,这样10个字母对象被放置在框1中,11个字母被放置在框2中,依此类推。这应该包括任何物体。
有时盒子里有不止一个物体,但如果你要找火箭,它比花生和火箭快得多,而不是检查一整棵卷心菜、豌豆、班卓琴和犀牛。
这是一个哈希代码。从一个对象中获取一个数字的一种方法,它可以存储在一个哈希表中。在Java中,哈希代码可以是任意整数,每个对象类型负责生成自己的哈希代码。有关详细信息,请参见object的“hashcode”方法。
Java对象的哈希代码只是一个数字。它是一个32位有符号整数,允许对象由基于哈希的数据结构管理。我们知道散列码是JVM分配给对象的唯一ID号。但实际上,哈希码并不是对象的唯一数字。如果两个对象相等,它们应该返回相同的哈希代码。因此,我们必须以这种方式实现类的hashcode()方法。如果两个对象相等,也就是说,它们由类的equals()方法进行比较,那么这两个对象必须返回相同的哈希代码。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。