数据类型:字典键
有人可以告诉我同时实现它们(hashCode/equals)的重要性.因为我认为如果我们实现hashCode方法equals将比较hashCodes并给我们相等.
HashCode不保证唯一性.例如,HashCode在大多数语言中占用2 ^ 32个值.如果你有一个4个整数的类,你可以拥有多少个可能的独特状态/实例?(2 ^ 32)^ 4.这意味着即使您实现了完美的哈希码,您仍然会发生2 ^(32*3)次冲突,其中一对不同的对象具有相同的哈希码.
因此,HashCode用作第一个"快速"比较,用于查找与您要查找的对象类似的对象.一旦你找到一组对象,就会检查每个对象的相等性,看看是否有一个正是你正在寻找的对象.
| 归档时间: |
|
| 查看次数: |
515 次 |
| 最近记录: |