Intern
Симметрия чист?
sobes.tech AI
Ҷавоб аз AI
Дарсият дар Java ба хусусияти муносибати муқоиса (equals() ва hashCode()) байни объектҳо дахл дорад. Агар a.equals(b) рост бошад, пас b.equals(a) низ бояд рост бошад. Набудани риояи ин қоида ба рафтори номуайян дар коллексияҳо оварда мерасонад.
class MyObject {
private int value;
public MyObject(int value) {
this.value = value;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MyObject myObject = (MyObject) o;
return value == myObject.value;
}
@Override
public int hashCode() {
return Objects.hash(value);
}
}
// Мисол, ки симметрияро нишон медиҳад
MyObject obj1 = new MyObject(10);
MyObject obj2 = new MyObject(10);
// Агар obj1.equals(obj2) рост бошад,
// пас obj2.equals(obj1) низ бояд рост бошад.
boolean symmetric = obj1.equals(obj2) == obj2.equals(obj1);