Sobes.tech
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);