Встречается на собеседованиях • сегодня

Что такое симметричность equals

Симметричность equals означает, что если a.equals(b) возвращает true, то b.equals(a) тоже должен возвращать true. Это одно из ключевых требований контракта метода equals в Java. Нарушение симметричности может привести к непредсказуемому поведению в коллекциях.

Пример нарушения:

java
class A {
    @Override
    public boolean equals(Object o) {
        return o instanceof A;
    }
}

class B extends A {
    @Override
    public boolean equals(Object o) {
        if (o instanceof B) return true;
        return super.equals(o);
    }
}

A a = new A();
B b = new B();
a.equals(b); // true
b.equals(a); // false - нарушение симметричности!

Правильная реализация должна учитывать этот случай.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы