Різниця між рівними та хеш-кодами в Java

Ключова різниця - дорівнює vs hashCode в Java
 

Рівень подібний до оператора ==, який повинен перевірити ідентичність об'єкта, а не рівність об'єкта. Хеш-код - метод, за допомогою якого клас неявно або явно розбиває дані, що зберігаються в екземплярі класу, на одне хеш-значення, яке є 32-бітовим цілим числом. The ключова різниця між рівними і хеш-кодом у Java чи це рівняння використовується для порівняння двох об'єктів, тоді як хеш-код використовується в хешуваннях, щоб визначити, в яку групу об'єкт слід класифікувати.

ЗМІСТ

1. Огляд та ключові відмінності
2. Що дорівнює Яві
3. Що таке хеш-код у Java
4. Паралельне порівняння - дорівнює та хеш-коду на Java у табличній формі
5. Підсумок

Що дорівнює Java?

Метод рівняння використовується для порівняння двох об'єктів. Метод рівних за замовчуванням визначений у об'єктному класі. Ця реалізація схожа на оператора ==. Дві посилання на об'єкт рівні, лише якщо вони вказують на один і той же об'єкт. Можна замінити метод рівних.

Рисунок 01: Програма Java з рівними

Заява System.out.println (s1.equals (s2)) дасть відповідь хибною, оскільки s1 і s2 посилаються на два різні об'єкти. Це було схоже на твердження, System.out.println (s1 == s2);

Заява System.out.println (s1.equals (s3)) дасть відповідь правдивою, оскільки s1 і s3 посилаються на один і той же об'єкт. Це було схоже на твердження, System.out.println (s1 == s3);

У класі Стьюдента немає рівного методу. Тому рівняння в класі Object називають. Істинне відображається лише в тому випадку, якщо посилання на об'єкт вказує на той самий об'єкт.

Малюнок 02: Програма Java з переокремленими рівнями

Відповідно до вищезгаданої програми, метод рівних перевизначається. Об'єкт передається методу, і він видається для студентів. Потім перевіряються значення id. Якщо значення id схожі, воно повернеться істинним. Якщо ні, то воно повернеться хибним. Ідентифікатори s1 і s2 схожі. Отже, це буде надрукувати правду. Ідентифікатори s1 і s3 також схожі, тому він надрукує true.

Що таке хеш-код у Java?

Хеш-код використовується в хешуваннях, щоб визначити, до якої групи об'єкт слід класифікувати. Група об'єктів може поділяти один і той же хеш-код. Правильна хеш-функція може рівномірно розподіляти об'єкти в різні групи.

Правильний хеш-код може мати такі властивості. Припустимо, що є два об'єкти як obj1 і obj2. Якщо obj1.equals (obj2) вірно, то obj1.hashCode () дорівнює obj2.hashCode (). Якщо obj1.equals (obj2) помилковий, необов’язково, щоб obj1.hashCode () не дорівнював obj2.hashCode (). Два нерівних об'єкта також можуть мати однаковий хеш-код.

Малюнок 03: Клас студента з рівними та хеш-кодом

Рисунок 04: Основна програма

Клас Стьюдент містить методи рівних та хеш-кодів. Метод рівнянь у класі Студент отримає об’єкт. Якщо об’єкт недійсний, він поверне помилковий. Якщо класи об’єктів не однакові, вони повернуться помилковими. Значення id перевіряються в обох об'єктах. Якщо вони схожі, це повернеться правдою. В іншому випадку він повернеться помилковим.

В основній програмі створюються об'єкти s1 і s2. При виклику s1.equals (s2) буде дано true, тому що метод equals є перекритим і він перевіряє значення id двох об'єктів. Незважаючи на те, що вони посилаються на два об'єкти, відповідь вірна, оскільки значення id s1 і s2 однакові. Оскільки s1.equals (s2) вірно, хеш-код s1 і s2 має бути рівним. Друк хеш-коду s1 і s2 дає однакове значення. Метод хеш-коду можна використовувати з колекціями, такими як HashMap.

Яка різниця між рівними та хеш-кодами в Java?

дорівнює vs hashCode на Java

equals - це метод на Java, який діє аналогічно оператору ==, який повинен перевірити ідентичність об'єкта, а не рівність об'єкта. hashCode - метод, за допомогою якого клас неявно або явно розбиває дані, що зберігаються в екземплярі класу, на одне хеш-значення.
 Використання
Метод рівний використовується для порівняння двох об'єктів. Метод використовується в хешуваннях, щоб визначити, в яку групу слід розмістити об'єкт.

Підсумок - дорівнює vs hashCode в Java

Різниця рівних і хеш-кодів в Java полягає в тому, що рівняння використовується для порівняння двох об'єктів, тоді як хеш-код використовується в хешуваннях, щоб визначити, в яку групу об'єкт слід класифікувати.

Довідка:

1. "Java HashCode ()." Wikipedia, Фонд Вікімедіа, 17 лютого 2018 р. Доступний тут 
2.Харольд, Еліотта Расті. "Метод рівних ()." Метод рівних (), 2 листопада 2001. Доступний тут