Съдържание:
- Ключова разлика - равно на hashCode в Java
- Какво е равно в Java?
- Какво е hashCode в Java?
- Каква е разликата между equals и hashCode в Java?
- Резюме - е равно на hashCode в Java
Видео: Разлика между Equals и HashCode в Java
2024 Автор: Mildred Bawerman | [email protected]. Последно модифициран: 2023-12-16 08:37
Ключова разлика - равно на hashCode в Java
Equals е подобен на оператора ==, който трябва да тества идентичност на обекта, а не равенство на обекта. HashCode е метод, чрез който клас имплицитно или изрично разбива данните, съхранявани в екземпляр на класа, в една хеш стойност, която е 32-битово подписано цяло число. Ключовата разлика между equals и hashCode в Java е, че equals се използва за сравняване на два обекта, докато hashCode се използва при хеширане, за да се реши в коя група даден обект да бъде категоризиран.
СЪДЪРЖАНИЕ
1. Общ преглед и ключова разлика
2. Какво е равно в Java
3. Какво е hashCode в Java
4. Успоредно сравнение - равно на hashCode в Java в таблична форма
5. Обобщение
Какво е равно в Java?
Методът equals се използва за сравняване на два обекта. Методът по подразбиране е равен е дефиниран в обектния клас. Това изпълнение е подобно на оператора ==. Двете препратки към обекти са равни, само ако сочат към един и същ обект. Възможно е да се замени методът equals.
Фигура 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);
Няма метод на равен в класа Student. Следователно се извикват равни в клас Object. Истина се показва само ако препратката към обекта сочи към същия обект.
Фигура 02: Програма Java с отменени равни
Според горната програма методът equals е заменен. Обектът се предава на метода и той се излива в Student. След това се проверяват стойностите на id. Ако стойностите на id са подобни, това ще върне true. Ако не, ще върне false. Идентификаторите на s1 и s2 са сходни. Така че ще отпечата вярно. Идентификаторите на s1 и s3 също са подобни, така че ще отпечата вярно.
Какво е hashCode в Java?
HashCode се използва при хеширане, за да се реши в коя група да се категоризира обектът. Група обекти могат да споделят същия hashCode. Правилната хешираща функция може равномерно да разпределя обектите в различни групи.
Правилният hashCode може да има свойства, както следва. Да приемем, че има два обекта като obj1 и obj2. Ако obj1.equals (obj2) е вярно, тогава obj1.hashCode () е равно на obj2.hashCode (). Ако obj1.equals (obj2) е невярно, не е необходимо obj1.hashCode () да не е равно на obj2.hashCode (). Двата неравномерни обекта също могат да имат един и същ hashCode.
Фигура 03: Студентски клас с равни и hashCode
Фигура 04: Основна програма
Класът Student съдържа методите equals и hashCode. Методът equals в класа Student ще получи обект. Ако обектът е нула, той ще върне false. Ако класовете на обектите не са еднакви, той ще върне false. Стойностите на id се проверяват и в двата обекта. Ако те са подобни, това ще се върне вярно. В противен случай ще се върне false.
В основната програма се създават обекти s1 и s2. При извикване на s1.equals (s2) ще даде true, защото методът equals е заменен и той проверява стойностите на id на двата обекта. Въпреки че се отнасят до два обекта, отговорът е верен, тъй като идентификационните стойности на s1 и s2 са еднакви. Тъй като s1.equals (s2) е вярно, hashCode на s1 и s2 трябва да бъде равен. Отпечатването на hashCode на s1 и s2 дава същата стойност. Методът hashCode може да се използва с колекции като HashMap.
Каква е разликата между equals и hashCode в Java?
Различна статия Средна преди таблица
е равно на hashCode в Java |
|
equals е метод в Java, който действа подобно на оператора ==, който е да тества за идентичност на обекта, а не за обективно равенство. | hashCode е метод, чрез който клас имплицитно или изрично разбива данните, съхранявани в екземпляр на класа, в единична хеш стойност. |
Употреба | |
Методът е равен се използва за сравняване на два обекта. | Методът се използва при хеширане, за да се реши в коя група да се постави обект. |
Резюме - е равно на hashCode в Java
Разликата в equals и hashCode в Java е, че equals се използва за сравняване на два обекта, докато hashCode се използва при хеширане, за да се реши в коя група даден обект да бъде категоризиран.
Препоръчано:
Разлика между Android и Java
Android срещу Java Java е един от най-популярните обектно-ориентирани езици за програмиране в света. Java се използва широко за разработка на софтуер и уеб
Разлика между Java и C ++
Java срещу C ++ Java и C ++ са и обектно-ориентирани езици за програмиране. С помощта на тези приложения се разработват софтуерни приложения. Приложения базирани o
Разлика между езика Java и C
Java срещу C език Java и C са и двата езика за компютърно програмиране. И двете се използват за разработване на софтуерни приложения. Java се използва за създаване на приложение b
Разлика между Java и JavaScript
Java срещу JavaScript Java и JavaScript са езици за програмиране. Java е обектно-ориентиран език за програмиране, докато JavaScript е по-скоро скрипт
Разлика между променливите и литералите за данни в Java
Ключова разлика - Променливи спрямо литерали за данни в Java Компютърната програма е набор от инструкции за изпълнение на задача. Изисква се съхраняване на данни, докато прогр