java.lang.Object sınıfında yer alan hashCode() metodu native bir metodur ve bu metod JVM tarafından uygulanır. Her sınıf varsayılan olan hashCode() metodunu kullanabilir. HashCode 32 bit tekil bir değerdir. Bu değeri objelerimiz için objelerin id si gibi düşünebiliriz.

HashMap ,Hashtable HashSet gibi Collection yapıları ile ilgili objelerin saklanması veya doldurulması konusunda hashCode degeri kullanılır.

hashCode metodunun override edilmesi Collection yapılarında özellikle gerekmektedir. hashCode değeri ilgili objeyi collection içinde bulabilmemizi sağlar.

Bütün objeler için tek bir hashCode kullanılabilir ama bu performans açısından kötü olacaktır. Çünkü, hashCode bir collectionda veri bylurken önce ilgili collection’ı daha sonra ise o collection içindeki veriyi bulacaktır. Tek bir hashCode ile bunu yaparsak çok fazla zaman alacaktır ve bu performans açısından pek tercih edilmeyecektir.

Ama hashCode metodu doğru bir şekilde override edilerek birden fazla hashcode olduğunda her hashCode kendi collection’ı içinde arama yapacağı için performans olarak daha iyi sonuç verecektir.

 

 

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir