Equals () ve hashCode () arasındaki fark nedir?

Equals () ve hashCode () arasındaki fark nedir?

Java'da equals() ve hashCode() metodları, nesne karşılaştırmalarında ve nesne örneklerinin hash tablolarında kullanılmak üzere kullanılır.

equals() metodu, iki nesnenin eşit olup olmadığını kontrol eder. Bu kontrol, nesnelerin referanslarının eşit olup olmadığına değil, içeriklerinin eşit olup olmadığına bakar. Varsayılan olarak, equals() metodu, referans karşılaştırması yapar. Bu nedenle, özel bir durum yoksa, bu metotu kullanarak iki nesnenin eşit olup olmadığını kontrol etmek pek doğru sonuç vermez.

hashCode() metodu ise, nesnenin hash kodunu hesaplar. Her nesne için farklı bir hash kodu hesaplanır ve nesnenin bellek adresi kullanılarak bu hesaplama yapılır. Bu nedenle, iki farklı nesne için farklı hash kodları elde edilir. Bu metod, özellikle nesnelerin hash tablolarında kullanılması için önemlidir.

Özetle, equals() metodu, nesnelerin eşit olup olmadığını kontrol ederken, hashCode() metodu, nesnelerin hash kodlarını hesaplar ve nesnelerin hash tablolarında kullanımını sağlar. Bu iki metod arasında bir sözleşme vardır ve bu sözleşmeye uyulması gerekir.

Equals () ve hashCode () arasındaki fark nedir?
Paylaş: