當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Object hashCode()用法及代碼示例


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
  }
}

注意: 這Objectclass 是 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()方法來獲取StringArrayList對象的哈希碼。

這是因為StringArrayList 類繼承了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

  }
}

在上麵的示例中,我們可以看到兩個對象 obj1obj2 正在生成相同的哈希碼值。

這是因為兩個對象相等。而且,根據官方 Java 文檔,兩個相等的對象應該總是返回相同的哈希碼值。

注意: 我們用過Object equals檢查兩個對象是否相等的方法。

相關用法


注:本文由純淨天空篩選整理自 Java Object hashCode()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。