您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页hashCode_方法(1)

hashCode_方法(1)

来源:华拓科技网
hashCode 方法

hashCode 是按照一定的算法得到的一个数值,是对象的散列码值。主要用来在集合(后

面会学到)中实现快速查找等操作,也可以用于对象的比较。

在 Java 中,对 hashCode 的规定如下: (1):在同一个应用程序执行期间,对同一个对象调用 hashCode(),必须返回相同的整

数结果——前提是 equals()所比较的信息都不曾被改动过。至于同一个应用程序在不同执

行期所得的调用结果,无需一致。

(2):如果两个对象被 equals(Object)方法视为相等,那么对这两个对象调用 hashCode

()必须获得相同的整数结果。

(3):如果两个对象被 equals(Object)

方法视为不相等,那么对

这两个对象调用 hashC

ode()不必产生不同的整数结果。然而程序员应该意识到,对不同对象产生不同的整数结

果,有可能提升 hashTable(后面会学到,集合框架中的一个类) 的效率。

简单地说:如果两个对象相同,那么它们的 hashCode 值一定要相同;如果两个对象的

hashCode 相同,它们并不一定相同。

在 Java 规范里面规定,覆盖 equals 方法应该连带覆盖 hashCode 方法,这就涉及到一个

如何实现 hashCode 方法的问题了。

实现一:偷懒的做法:对同一对象始终返回相同的hashCode,如下:

public int hashCode(){ return 1;

}

它是合法的,但是不好,因为每个对象具有相同的 hashCode,会使得很多使用 hashCode

的类的运行效率大大降低,甚至发生错误。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务