Рівень подібний до оператора ==, який повинен перевірити ідентичність об'єкта, а не рівність об'єкта. Хеш-код - метод, за допомогою якого клас неявно або явно розбиває дані, що зберігаються в екземплярі класу, на одне хеш-значення, яке є 32-бітовим цілим числом. The ключова різниця між рівними і хеш-кодом у Java чи це рівняння використовується для порівняння двох об'єктів, тоді як хеш-код використовується в хешуваннях, щоб визначити, в яку групу об'єкт слід класифікувати.
1. Огляд та ключові відмінності
2. Що дорівнює Яві
3. Що таке хеш-код у Java
4. Паралельне порівняння - дорівнює та хеш-коду на Java у табличній формі
5. Підсумок
Метод рівняння використовується для порівняння двох об'єктів. Метод рівних за замовчуванням визначений у об'єктному класі. Ця реалізація схожа на оператора ==. Дві посилання на об'єкт рівні, лише якщо вони вказують на один і той же об'єкт. Можна замінити метод рівних.
Рисунок 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.
Хеш-код використовується в хешуваннях, щоб визначити, до якої групи об'єкт слід класифікувати. Група об'єктів може поділяти один і той же хеш-код. Правильна хеш-функція може рівномірно розподіляти об'єкти в різні групи.
Правильний хеш-код може мати такі властивості. Припустимо, що є два об'єкти як 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.
дорівнює vs hashCode на Java | |
equals - це метод на Java, який діє аналогічно оператору ==, який повинен перевірити ідентичність об'єкта, а не рівність об'єкта. | hashCode - метод, за допомогою якого клас неявно або явно розбиває дані, що зберігаються в екземплярі класу, на одне хеш-значення. |
Використання | |
Метод рівний використовується для порівняння двох об'єктів. | Метод використовується в хешуваннях, щоб визначити, в яку групу слід розмістити об'єкт. |
Різниця рівних і хеш-кодів в Java полягає в тому, що рівняння використовується для порівняння двох об'єктів, тоді як хеш-код використовується в хешуваннях, щоб визначити, в яку групу об'єкт слід класифікувати.
1. "Java HashCode ()." Wikipedia, Фонд Вікімедіа, 17 лютого 2018 р. Доступний тут
2.Харольд, Еліотта Расті. "Метод рівних ()." Метод рівних (), 2 листопада 2001. Доступний тут