Метод hashCode() класса Object в Java
Метод hashCode() класса Object используется для получения хеш-значения объекта.
Синтаксис
object.hashCode()
Parameters
Отсутствует 。
Возвращаемое значение
Возвращает хеш-значение объекта, которое является целым числом, представляющим позицию в хеш-таблице.
Пример
Следующий пример демонстрирует использование метода hashCode():
Пример
class ExampleTest {
public static void main(String[] args) {
//Object с использованием hashCode()
Object obj1 = new Object();
System.out.println(obj1.hashCode());
Object obj2 = new Object();
System.out.println(obj2.hashCode());
Object obj3 = new Object();
System.out.println(obj3.hashCode());
}
}
Вывод вышеприведённой программы:
225534817 1878246837 929338653
Классы String и ArrayList используют метод hashCode(). Поскольку оба класса String и ArrayList наследуют Object, они могут напрямую использовать метод hashCode():
Пример
import java.util.ArrayList;
class ExampleTest {
public static void main(String[] args) {
//String с использованием hashCode()
String str = new String();
System.out.println(str.hashCode()); // 0
//ArrayList с использованием hashCode()
ArrayList<Integer> list = new ArrayList<>();
System.out.println(list.hashCode()); // 1
}
}
Вывод вышеприведённой программы:
0 1
Следующий пример демонстрирует, что если два объекта равны, то их хеш-значения также равны:
Пример
class ExampleTest {
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()); // 225534817
System.out.println(obj2.hashCode()); // 225534817
}
}
Вывод вышеприведённой программы:
true 225534817 225534817
Другие расширения
Класс Object в Java