Хеш-код объекта в Java
Коллекции с быстрым поиском опираются на целочисленный отпечаток
каждого элемента. В Java его даёт метод hashCode из
Object. Его используют HashMap, HashSet
и другие структуры. Реализация по умолчанию привязана к
идентичности экземпляра: у двух разных объектов обычно разные
коды, даже если поля совпадают.
Вызвать hashCode можно у любого объекта:
class Post {
public String title;
public Post(String title) {
this.title = title;
}
}
Создадим объект Post и выведем число, которое вернет
hashCode:
Post post = new Post("News");
System.out.println(post.hashCode());
Два отдельных объекта Post с одним заголовком дают
разные хеш-коды, пока hashCode не переопределён:
Post first = new Post("News");
Post second = new Post("News");
System.out.println(first.hashCode() == second.hashCode());
Один и тот же экземпляр при повторном вызове возвращает один и тот же хеш-код:
Post post = new Post("News");
int first = post.hashCode();
int second = post.hashCode();
System.out.println(first == second);
Создайте объект Employee и выведите его
hashCode() в консоль.