黑马程序员技术交流社区
标题:
两个对像值相同(x.equals(y) == true),但却可有不同的hash code...
[打印本页]
作者:
大牙到潍坊
时间:
2013-12-3 21:37
标题:
两个对像值相同(x.equals(y) == true),但却可有不同的hash code...
本帖最后由 大牙到潍坊 于 2013-12-4 12:25 编辑
两个对像值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
作者:
yuanlianxi03
时间:
2013-12-3 21:40
GetHashCode 方法的默认实现不保证针对不同的对象返回唯一值。而且,.NET Framework 不保证 GetHashCode 方法的默认实现以及它所返回的值在不同版本的 .NET Framework 中是相同的。因此,在进行哈希运算时,该方法的默认实现不得用作唯一对象标识符。
作者:
yuanlianxi03
时间:
2013-12-3 22:12
是对的,但是有些应用需要值相同时,hash_code 也要相同
重写 GetHashCode 的派生类还必须重写 Equals,以保证被视为相等的两个对象具有相同的哈希代码;否则,Hashtable 类型可能无法正常工作。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2