Junior
equals() metodu ne yapar?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da equals() metodu iki nesneyi eşitlik açısından karşılaştırır.
Varsayılan olarak (sınıf Object içinde), nesne referanslarının aynı olup olmadığını kontrol eder (aynı bellek örneğine işaret edip etmediklerini).
Sınıflar, nesnelerin içeriklerine dayalı olarak mantıksal eşitliği belirlemek için bu metodu yeniden tanımlayabilirler (örneğin, iki String nesnesi, farklı örnekler olsalar bile, aynı karakter dizisini içeriyorsa eşit kabul edilir).
equals() metodunu yeniden tanımlarken, hashCode() metodunu da yeniden tanımlamak gerekir; çünkü şu anlaşma geçerlidir: Eğer iki nesne equals() ile eşitse, onların hashCode() değerleri de aynı olmalıdır.
Yeniden tanımlama örneği:
class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Referans karşılaştırması
if (o == null || getClass() != o.getClass()) return false; // null ve sınıf kontrolü
MyClass myClass = (MyClass) o; // Tür dönüşümü
return value == myClass.value; // Mantıksal karşılaştırma
}
@Override
public int hashCode() {
return Objects.hash(value); // Hash kodu üretimi
}
}