首页 文章

我是否需要使用键/值“对”来使用哈希表?

提问于
浏览
0

关于哈希表的基本问题 . 考虑一个用哈希表替换整数数组的简单例子 . 什么是键/值对?如果我没错,那么一对在这里没有意义 .

例如,我想将整数映射到大小为10的数组(从0到9的桶) . 考虑一个哈希函数,它只需要输入mod 10 . 例如,元素23将转到3的桶中,因为23%10 = 3 .

根据我的理解,23是关键,3是与之对应的哈希值 . 23不是' Value '吗?

1 回答

  • 1

    没有. 23 是关键 . 在您的情况 3 中,密钥的哈希值决定了桶 . 该值是您放入存储桶中的值,与键 23 相关联 . 例如,在许多语言中,您会写:

    my_hashtable[23] = "Valerie"
    

    这将创建一个键值对 (23, "Valerie") 并将其填入 my_hashtable 的某个桶中 .

    哈希表的目的是关联键和值,并允许以有效的方式进行查找 . 存储桶和散列是一个实现细节(最佳的一个,所以每个人都在使用它们,但仍然是一个实现细节,因此与散列表的用户无关) .

    正如我在评论中所指出的,如果您需要集合,大多数语言也支持它们 . 许多人会在后台使用哈希表来执行此操作,但这也是一个实现细节 .

相关问题