在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同
的整数,前提是将对象进行 equals 比较时所用
的信息没有被修改。从某一应用程序
的一次执行到同一应用程序
的另一次执行,该整数无需保持一致。
如果根据 equals(Object) 方法,两个对象是相等 的,那么对这两个对象中 的每个对象调用 hashCode 方法都必须生成相同 的整数结果。
如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中 的任一对象上调用 hashCode 方法不 要求一定生成不同 的整数结果。但是,程序员应该意识到,为不相等 的对象生成不同整数结果可以提高哈希表 的性能。
如果根据 equals(Object) 方法,两个对象是相等 的,那么对这两个对象中 的每个对象调用 hashCode 方法都必须生成相同 的整数结果。
如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中 的任一对象上调用 hashCode 方法不 要求一定生成不同 的整数结果。但是,程序员应该意识到,为不相等 的对象生成不同整数结果可以提高哈希表 的性能。