Junior
Ի՞նչ է անում equals() մեթոդը։
sobes.tech AI
Պատասխան AI-ից
Java-յում equals() մեթոդը համեմատում է երկու օբյեկտներ՝ ստուգելու համար, արդյոք նրանք հավասար են:
Նախնական (Object դասում), այն ստուգում է, արդյոք օբյեկտների հղումները նույնն են (այդինքն՝ pointing են նույն օրինակին հիշողության մեջ):
Դասերը կարող են վերագրել այս մեթոդը՝ որոշելու համար օբյեկտների տրամաբանական հավասարությունը՝ հիմնվելով նրանց պարունակության վրա (օրինակ, երկու String օբյեկտներ համարվում են հավասար, եթե պարունակում են նույն սերիան նշանների, նույնիսկ եթե դրանք տարբեր օրինակներ են):
Երբ վերագրում եք equals(), անհրաժեշտ է նաև վերագրել hashCode() մեթոդը՝ պահպանելու համար հետևյալ պայմանը. եթե երկու օբյեկտներ հավասար են equals()-ով, ապա նրանց hashCode()-ները պետք է վերադարձնեն նույն արժեքը:
Նմուշ՝ վերագրում:
class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Հղումների համեմատություն
if (o == null || getClass() != o.getClass()) return false; // Null և տիպերի ստուգում
MyClass myClass = (MyClass) o; // Տիպափոխում
return value == myClass.value; // Լոգիկական համեմատություն
}
@Override
public int hashCode() {
return Objects.hash(value); // Hash կոդի սերունդ
}
}