Java'da eşittir ve hashCode Arasındaki Fark

Temel Fark - eşittir vs hashCode Java
 

Eşittir, == operatörüne benzer; bu, nesne eşitliği yerine nesne kimliğini test eder. HashCode, bir sınıfın, sınıfın bir örneğinde depolanan verileri örtük veya açık bir şekilde, 32 bit işaretli bir tam sayı olan tek bir karma değerine böldüğü bir yöntemdir. temel fark eşittir ve hashCode arasında Java bu mu eşittir iki nesneyi karşılaştırmak için kullanılırken hashCode, bir nesnenin hangi gruba sınıflandırılacağına karar vermek için hashCode kullanılır.

İÇİNDEKİLER

1. Genel Bakış ve Temel Fark
2. Java'da eşittir
3. Java'da hashCode nedir
4. Yan Yana Karşılaştırma - Çizelge Formunda Java'da hashCode'a eşittir
5. Özet

Java'da eşittir?

Eşittir yöntemi iki nesneyi karşılaştırmak için kullanılır. Varsayılan eşittir yöntemi nesne sınıfında tanımlanır. Bu uygulama == operatörüne benzer. İki nesne başvurusu yalnızca aynı nesneyi işaret ediyorsa eşittir. Eşittir yöntemini geçersiz kılmak mümkündür.

Şekil 01: Eşittir Java Programı

System.out.println (s1.equals (s2)) ifadesi, yanlış yanıtı verir çünkü s1 ve s2 iki farklı nesneye başvuruyor. System.out.println (s1 == s2);

System.out.println (s1.equals (s3)) ifadesi, yanıtı doğru verecektir çünkü s1 ve s3 aynı nesneye başvuruyor. System.out.println (s1 == s3);

Öğrenci sınıfında eşit bir yöntem yoktur. Bu nedenle, Object sınıfındaki eşittir çağrılır. True yalnızca nesne başvurusu aynı nesneyi gösteriyorsa görüntülenir.

Şekil 02: Geçersiz Kılınan eşitliğe sahip Java Programı

Yukarıdaki programa göre, eşittir yöntemi geçersiz kılınır. Bir nesne yönteme iletilir ve bu tür Öğrenci'ye dökülür. Ardından kimlik değerleri kontrol edilir. Kimlik değerleri benzerse true değerini döndürür. Değilse, yanlış döner. S1 ve s2'nin kimlikleri benzerdir. Böylece, doğru yazdırılacaktır. S1 ve s3 kimlikleri de benzerdir, bu yüzden doğru yazdırır.

Java'da hashCode nedir?

HashCode, bir nesnenin hangi grupta sınıflandırılacağına karar vermek için karma işleminde kullanılır. Bir grup nesne aynı hashCode'u paylaşabilir. Doğru karma işlevi, nesneleri farklı gruplara eşit olarak dağıtabilir.

Doğru bir hashCode özelliği aşağıdaki gibi özelliklere sahip olabilir. Obj1 ve obj2 olarak iki nesne olduğunu varsayın. Obj1.equals (obj2) doğruysa, obj1.hashCode () obj2.hashCode () öğesine eşittir. Obj1.equals (obj2) yanlışsa, obj1.hashCode () öğesinin obj2.hashCode () öğesine eşit olması gerekmez. Eşit olmayan iki nesne de aynı hashCode değerine sahip olabilir.

Şekil 03: Eşittir ve hashCode içeren öğrenci sınıfı

Şekil 04: Ana Program

Student sınıfı, equals ve hashCode yöntemlerini içerir. Student sınıfındaki equals yöntemi bir nesne alır. Nesne null ise, false değerini döndürür. Nesnelerin sınıfları aynı değilse, false değerini döndürür. Kimlik değerleri her iki nesnede de kontrol edilir. Eğer benzer iseler, geri dönecektir. Yoksa yanlış dönecek.

Ana programda s1 ve s2 nesneleri oluşturulur. S1.equals (s2) çağrıldığında, equals yöntemi geçersiz kılındığı ve iki nesnenin kimlik değerlerini kontrol ettiği için true değerini verir. İki nesneye atıfta bulunsalar da, cevap doğrudur çünkü s1 ve s2'nin id değerleri aynıdır. S1.equals (s2) doğru olduğundan, s1 ve s2'nin hashCode'u eşit olmalıdır. S1 ve s2'nin hashCode'unu yazdırmak aynı değeri verir. HashCode yöntemi HashMap gibi Koleksiyonlar ile kullanılabilir.

Java'da eşittir ve hashCode Arasındaki Fark Nedir??

Java'da hashCode'a eşittir

equals, Java'da == operatörüne benzeyen ve nesne eşitliği yerine nesne kimliğini test eden bir yöntemdir. hashCode, bir sınıfın, sınıfın bir örneğinde depolanan verileri örtülü veya açık bir şekilde tek bir karma değerine böldüğü bir yöntemdir.
 kullanım
Eşittir yöntemi iki nesneyi karşılaştırmak için kullanılır. Yöntem, bir nesnenin hangi gruba yerleştirilmesi gerektiğine karar vermek için karma işleminde kullanılır.

Özet - eşittir vs hashCode Java

Java'daki eşittir ve hashCode arasındaki fark, bir nesnenin hangi gruba sınıflandırılması gerektiğine karar vermek için hashCode hashCode kullanılırken, eşitlerin iki nesneyi karşılaştırmak için kullanılmasıdır..

Referans:

1. “Java HashCode ().” Vikipedi, Wikimedia Vakfı, 17 Şubat 2018. Buradan erişebilirsiniz 
2. iyi, Elliotte Rusty. “Eşittir () Yöntemi.” Eşittir () Yöntemi, 2 Kasım 2001. Buradan ulaşılabilir