当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。