【问题标题】:Why do many OO languages use the memory location of the object itself as the default hash code?为什么很多 OO 语言都使用对象本身的内存位置作为默认的哈希码?
【发布时间】:2017-10-16 22:42:36
【问题描述】:

为什么 OOP 语言可以使用对象的内存位置作为类实例的默认哈希码?如果哈希表会小于可寻址内存。

【问题讨论】:

  • 哈希表通常不会将哈希码直接映射到表索引。该地址通常是不可变且唯一的,并且无需计算任何成本,使其成为一个方便的整数 id。

标签: oop hash hashtable


【解决方案1】:

因为很方便!

内存地址是一个对象的唯一标识符,因为没有其他对象可以占用相同的内存位置。哈希表不需要很大就可以使用它们。假设最初您的哈希表很小,只有 10 个桶。要决定将对象放入哪个存储桶,请获取其地址和% 10。而且你有“足够好”的桶分布。哈希表真的很有趣,我建议阅读更多关于它们的信息,例如在Wikipedia

【讨论】:

    猜你喜欢
    • 2021-07-19
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2011-08-18
    相关资源
    最近更新 更多