跳到主要内容

Java Object hashCode() 方法

hashCode() 方法的语法是:

object.hashCode()

hashCode() 参数

hashCode() 方法不接受任何参数。

hashCode() 返回值

  • 返回对象的哈希码值

注意:哈希码值是与每个对象相关联的整数值。它用于识别对象在哈希表中的位置。

示例 1:Java Object hashCode()

class Main {
public static void main(String[] args) {

// 使用 Object 的 hashCode()
Object obj1 = new Object();
System.out.println(obj1.hashCode()); // 1785210046

Object obj2 = new Object();
System.out.println(obj2.hashCode()); // 1552787810

Object obj3 = new Object();
System.out.println(obj3.hashCode()); // 1361960727
}
}

注意Object 类是 Java 中所有类的超类。因此,每个类都可以实现 hashCode() 方法。

示例 2:使用 String 和 ArrayList 的 hashCode()

import java.util.ArrayList;

class Main {
public static void main(String[] args) {

// 使用 String 的 hashCode()
String str = new String();
System.out.println(str.hashCode()); // 0

ArrayList<Integer> list = new ArrayList<>();
System.out.println(list.hashCode()); // 1
}
}

在上述示例中,我们可以调用 hashCode() 方法来获取 StringArrayList 对象的哈希码。

这是因为 StringArrayList 类继承了 Object 类。

示例 3:相等对象的哈希码值

class Main {
public static void main(String[] args) {

// 使用 Object 的 hashCode()
Object obj1 = new Object();

// 将 obj1 赋值给 obj2
Object obj2 = obj1;

// 检查两个对象是否相等
System.out.println(obj1.equals(obj2)); // true

// 获取 obj1 和 obj2 的哈希码
System.out.println(obj1.hashCode()); // 1785210046
System.out.println(obj2.hashCode()); // 1785210046

}
}

在上述示例中,我们可以看到两个对象 obj1obj2 生成了相同的哈希码值。

这是因为两个对象是相等的。根据 Java 官方文档,两个相等的对象应该始终返回相同的哈希码值。

注意:我们使用了 Java Object equals() 方法来检查两个对象是否相等。