gpt4 book ai didi

java - 什么是java中的哈希函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:41:13 25 4
gpt4 key购买 nike

我已经结帐了this维基百科页面上有,但我还是不明白。有人可以帮助我理解散列、散列表/散列图和散列函数的概念吗?一些例子真的很有帮助。

最佳答案

维基百科的文章会有很多技术信息,但是散列的简单 View 如下所示。

想象一下,有一个神奇的函数可以为任何对象赋予一个数字。给定相同的对象,它总是返回相同的数字。

现在您有一个快速的方法来测试两个对象是否相同:向此函数询问它们的数字并进行比较。如果它们不同,则它们不相同。

但是如果他们有相同的数字怎么办?两个不同的对象可以有相同的编号吗?

是的,这在大多数情况下都是可能的。例如,假设该函数只能给出 1..10 之间的数字,并且有 100 个不同的对象。那么当然一些不同的对象必须具有相同的编号。这就是所谓的“碰撞”。 “碰撞”使我们的快速相等性测试变得不那么有用,因此我们希望尽可能减少它的发生。一个好的魔法函数是尝试最小化“碰撞”的次数。

那么你还能用这个数字做什么?嗯,你可以用它来索引一个数组。给定一个对象,你可以把它放在这个神奇函数的数字给定的索引处。这个数组本质上就是哈希表;这个神奇的函数是哈希函数。

关于java - 什么是java中的哈希函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3069709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com