Junior — Middle
Java'da equals ve hashCode metodları arasındaki temel prensipler nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da equals ve hashCode arasındaki temel ilkeler:
- Eğer iki nesne equals'e göre eşitse, hashCode'ları aynı olmalıdır.
- Eğer iki nesnenin hashCode'ları farklıysa, equals mutlaka false döndürmelidir.
- Eğer equals false dönerse, hashCode aynı olabilir, ancak bu istenmez çünkü hash yapısının performansını olumsuz etkiler.
Bu, hash kullanarak koleksiyonların (HashMap, HashSet) doğru çalışmasını sağlar; burada hashCode, sepeti belirler ve equals, nesnelerin kesin karşılaştırmasını yapar.
Örnek:
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return Objects.equals(id, person.id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
Burada, equals ve hashCode aynı alan olan id'ye dayanır, bu da tutarlılıklarını sağlar.