Różnica między equals i hashCode w Javie

Kluczowa różnica - równa się vs hashCode in Jawa
 

Równa się jest podobna do operatora ==, który ma sprawdzać tożsamość obiektu, a nie równość obiektu. HashCode to metoda, za pomocą której klasa pośrednio lub jawnie dzieli dane przechowywane w instancji klasy na jedną wartość skrótu, która jest 32-bitową liczbą całkowitą ze znakiem. The kluczowa różnica między equals i hashCode w Jawa czy to równa się służy do porównania dwóch obiektów, podczas gdy hashCode jest używany w haszowaniu, aby zdecydować, do której grupy należy zaklasyfikować obiekt.

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co jest równe w Javie
3. Co to jest hashCode w Javie
4. Porównanie obok siebie - równa się z hashCode w Javie w formie tabelarycznej
5. Podsumowanie

Co jest równe w Javie?

Metoda równości służy do porównania dwóch obiektów. Domyślna metoda równa się jest zdefiniowana w klasie obiektów. Ta implementacja jest podobna do operatora ==. Dwa odwołania do obiektów są równe tylko wtedy, gdy wskazują na ten sam obiekt. Możliwe jest zastąpienie metody równości.

Rysunek 01: Program Java o wartości równej

Instrukcja System.out.println (s1.equals (s2)) da odpowiedź false, ponieważ s1 i s2 odnoszą się do dwóch różnych obiektów. Było podobne do instrukcji System.out.println (s1 == s2);

Instrukcja System.out.println (s1.equals (s3)) da odpowiedź true, ponieważ s1 i s3 odnoszą się do tego samego obiektu. Było podobne do instrukcji System.out.println (s1 == s3);

W klasie Student nie ma równej metody. Dlatego nazywa się equals w klasie Object. Prawda jest wyświetlana tylko wtedy, gdy odwołanie do obiektu wskazuje ten sam obiekt.

Rysunek 02: Program Java z zastąpieniem jest równy

Zgodnie z powyższym programem metoda równości jest nadpisywana. Obiekt jest przekazywany do metody i jest rzutowany na Student. Następnie sprawdzane są wartości identyfikatora. Jeśli wartości id są podobne, zwróci true. Jeśli nie, zwróci false. Identyfikatory s1 i s2 są podobne. Tak więc wydrukuje to prawda. Identyfikatory s1 i s3 są również podobne, więc wypisze prawdę.

Co to jest hashCode w Javie?

HashCode jest używany w haszowaniu, aby zdecydować, do której grupy należy zaklasyfikować obiekt. Grupa obiektów może współdzielić ten sam hashCode. Prawidłowa funkcja mieszająca może równomiernie rozdzielić obiekty na różne grupy.

Prawidłowy hashCode może mieć następujące właściwości. Załóżmy, że istnieją dwa obiekty jako obj1 i obj2. Jeśli obj1.equals (obj2) jest prawdziwe, to obj1.hashCode () jest równe obj2.hashCode (). Jeśli obj1.equals (obj2) ma wartość false, nie jest konieczne, aby obj1.hashCode () nie był równy obj2.hashCode (). Dwa nierówne obiekty mogą mieć również ten sam kod skrótu.

Rysunek 03: Klasa ucznia z equals i hashCode

Rysunek 04: Program główny

Klasa Student zawiera metody equals i hashCode. Metoda równości w klasie Student otrzyma obiekt. Jeśli obiekt ma wartość NULL, zwróci wartość false. Jeśli klasy obiektów nie są takie same, zwróci false. Wartości id są sprawdzane w obu obiektach. Jeśli są podobne, zwróci wartość true. W przeciwnym razie zwróci fałsz.

W programie głównym tworzone są obiekty s1 i s2. Wywołanie s1.equals (s2) da true, ponieważ metoda equals jest przesłonięta i sprawdza wartości id dwóch obiektów. Mimo że odnoszą się one do dwóch obiektów, odpowiedź jest prawdziwa, ponieważ wartości id s1 i s2 są takie same. Ponieważ s1.equals (s2) jest prawdą, hashCode s1 i s2 powinny być równe. Drukowanie hashCode s1 i s2 daje tę samą wartość. Metoda hashCode może być używana z kolekcjami, takimi jak HashMap.

Jaka jest różnica między equals i hashCode w Javie?

jest równy vs hashCode w Javie

równa się w Javie metoda, która działa podobnie do operatora ==, który ma na celu sprawdzenie tożsamości obiektu, a nie równości obiektu. hashCode to metoda, za pomocą której klasa pośrednio lub jawnie dzieli dane przechowywane w instancji klasy na jedną wartość skrótu.
 Stosowanie
Metoda równa się służy do porównania dwóch obiektów. Metodę stosuje się w haszowaniu, aby zdecydować, do której grupy należy umieścić obiekt.

Podsumowanie - równa się vs hashCode in Jawa

Różnica w equals i hashCode w Javie polega na tym, że equals służy do porównywania dwóch obiektów, podczas gdy hashCode jest używany w haszowaniu, aby zdecydować, do której grupy należy zaklasyfikować obiekt.

Odniesienie:

1. „Java HashCode ().” Wikipedia, Wikimedia Foundation, 17 lutego 2018 r. Dostępne tutaj 
2. Harold, Elliotte Rusty. „Metoda Equals ()”. The Equals () Method, 2 listopada 2001. Dostępne tutaj