gpt4 book ai didi

dictionary - 为什么如果实现了 hashCode 方法,在 Dictionary 数据类型中的键的情况下也必须实现 equals 方法?

转载 作者:行者123 更新时间:2023-12-04 01:31:56 41 4
gpt4 key购买 nike

数据类型:字典键

有人能告诉我同时实现它们(hashCode/equals)的重要性吗?因为我认为如果我们实现 hashCode 方法,equals 将比较 hashCodes 并给我们相等性。

最佳答案

HashCode 不保证唯一性。例如,HashCode 在大多数语言中采用 2^32 个值。如果你有一个 4 整数类,你可以有多少个可能的那个类的唯一状态/实例? (2^32)^4。这意味着即使您实现了完美的哈希码,您仍然会有 2^(32*3) 次冲突,其中一对不同的对象具有相同的哈希码。

因此,HashCode 被用作第一个“快速”比较,以查找与您正在寻找的对象看起来相似的对象。一旦您找到一组对象,就会检查每个对象的相等性,以查看是否有一个正是您正在寻找的对象。

关于dictionary - 为什么如果实现了 hashCode 方法,在 Dictionary 数据类型中的键的情况下也必须实现 equals 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1637036/

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