The syntax of the hashCode()
method is:
object.hashCode()
hashCode() Parameters
The hashCode()
method does not take any parameters.
hashCode() Return Values
- returns the hash code value of the object
Note: The hash code value is an integer value associated with each object. It is used to identify the location of objects in the hash table.
Example 1: Java Object 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
}
}
Note: The Object
class is the super class for all the classes in Java. Hence, every class can implement the hashCode()
method.
Example 2: hashCode() with String and 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
}
}
In the above example, we can call the hashCode()
method to get the hash code of the String
and ArrayList
object.
It is because the String
and ArrayList
class inherit the Object
class.
Example 3: Hash Code Value for Equals Object
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
}
}
In the above example, we can see that two objects obj1 and obj2 are generating the same hash code value.
It is because two objects are equal. And, according to official Java documentation, two equal objects should always return the same hash code value.
Note: We have used the Java Object equals() method to check whether two objects are equal.