Java Object hashCode() 方法返回與對象關聯的哈希碼值。
用法:
object.hashCode()
參數:
hashCode()
方法不接受任何參數。
hashCode() 返回值
- 返回對象的哈希碼值
注意:哈希碼值是與每個對象關聯的整數值。它用於標識對象在哈希表中的位置。
示例 1:Java 對象 hashCode()
class Main {
public static void main(String[] args) {
// hashCode() with Object
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
class 是 Java 中所有類的超類。因此,每個類都可以實現hashCode()
方法。
示例 2:hashCode() 與 String 和 ArrayList
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// hashCode() with String
String str = new String();
System.out.println(str.hashCode()); // 0
ArrayList<Integer> list = new ArrayList<>();
System.out.println(list.hashCode()); // 1
}
}
在上麵的例子中,我們可以調用hashCode()
方法來獲取String
和ArrayList
對象的哈希碼。
這是因為String
和ArrayList
類繼承了Object
類。
示例 3:Equals 對象的哈希碼值
class Main {
public static void main(String[] args) {
// hashCode() with Object
Object obj1 = new Object();
// assign obj1 to obj2
Object obj2 = obj1;
// check if two objects are equal
System.out.println(obj1.equals(obj2)); // true
// get hashcode of obj1 and obj2
System.out.println(obj1.hashCode()); // 1785210046
System.out.println(obj2.hashCode()); // 1785210046
}
}
在上麵的示例中,我們可以看到兩個對象 obj1
和 obj2
正在生成相同的哈希碼值。
這是因為兩個對象相等。而且,根據官方 Java 文檔,兩個相等的對象應該總是返回相同的哈希碼值。
注意: 我們用過Object equals檢查兩個對象是否相等的方法。
相關用法
- Java Object finalize()用法及代碼示例
- Java Object equals(Object obj)用法及代碼示例
- Java Object toString()用法及代碼示例
- Java Object getClass()用法及代碼示例
- Java Object clone()用法及代碼示例
- Java Object equals()用法及代碼示例
- Java ObjectInputStream readDouble()用法及代碼示例
- Java ObjectStreamField compareTo()用法及代碼示例
- Java ObjectInputStream readUnsignedByte()用法及代碼示例
- Java ObjectInputStream readFields()用法及代碼示例
- Java ObjectOutputStream writeFields()用法及代碼示例
- Java ObjectInputStream readFully()用法及代碼示例
- Java ObjectStreamField getName()用法及代碼示例
- Java ObjectOutputStream writeInt()用法及代碼示例
- Java ObjectInputStream readInt()用法及代碼示例
- Java ObjectStreamClass forClass()用法及代碼示例
- Java ObjectInputStream read()用法及代碼示例
- Java ObjectStreamField getOffset()用法及代碼示例
- Java ObjectStreamField getTypeCode()用法及代碼示例
- Java ObjectOutputStream writeBytes()用法及代碼示例
注:本文由純淨天空篩選整理自 Java Object hashCode()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。