gpt4 book ai didi

hash - HashMap 中的哈希部分如何工作?

转载 作者:行者123 更新时间:2023-12-01 13:06:38 26 4
gpt4 key购买 nike

所以hash maps article中有这张漂亮的图片在维基百科上:

Phonebook hashmap

到目前为止一切都很清楚,除了中间的哈希函数

  • 函数如何从任何字符串生成正确的索引?索引实际上也是整数吗?如果是,函数如何为 John Smith 输出 1,为 Lisa Smith 等输出 2

最佳答案

这是 hashmaps/dictionaries 等的关键问题之一。你必须选择一个好的散列函数。一个非常糟糕但快速的散列函数可能是 key 的长度。您会立即看到,您会遇到很多冲突(不同的键,但相同的哈希值)。另一个错误的散列函数可能是 key 第一个字符的 ASCII 值。还有很多碰撞。
所以你需要一个比这两个好得多的功能。例如,您可以添加(异或)关键字符的所有 ASCII 值并混合长度。在实践中,您通常依赖于要散列的对象的值(字段)(相同的值给出相同的散列 => 值类型)。例如,对于引用类型,您可以混合在一个内存位置。

在您的示例中,这已经简化了很多。没有真正的哈希函数会将这些键映射到序列号。

也许你想读一读我的 previous answers to hashmaps

关于hash - HashMap 中的哈希部分如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2637287/

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