比较两个对象的哈希值可以通过以下代码示例解决:
public class ObjectHashComparator {
public static boolean compareHash(Object obj1, Object obj2) {
if (obj1 == null && obj2 == null) {
return true;
}
if (obj1 != null && obj2 != null) {
int hash1 = obj1.hashCode();
int hash2 = obj2.hashCode();
return hash1 == hash2;
}
return false;
}
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "World";
System.out.println("Hash value of str1: " + str1.hashCode());
System.out.println("Hash value of str2: " + str2.hashCode());
boolean hashEqual = compareHash(str1, str2);
System.out.println("Are the hash values equal? " + hashEqual);
}
}
输出结果:
Hash value of str1: 69609650
Hash value of str2: 83766130
Are the hash values equal? false
在上述代码示例中,我们定义了一个静态方法compareHash
,它接受两个对象作为参数,并根据它们的哈希值进行比较。如果两个对象都为null
,则返回true
。如果两个对象都不为null
,则获取它们的哈希值并比较是否相等。如果有一个对象为null
,则返回false
。在main
方法中,我们创建了两个String
对象,并打印它们的哈希值。然后,我们调用compareHash
方法来比较它们的哈希值,并打印比较结果。
需要注意的是,哈希值的比较并不一定表示对象的相等性,因为可能存在哈希冲突的情况。如果需要比较对象的相等性,应该使用equals
方法。
下一篇:比较两个对象的类的扩展