TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #1442 3.33K
🤔 Что означает симметричность?

Симметричность – это свойство, при котором если A связано с B, то B связано с A.

🚩В математике

В логике и алгебре отношение \( R \) называется симметричным, если:
a R b \Rightarrow b R a
Но, например, отношение "a > b" не симметрично, потому что если a > b, то b > a – это неверно.

🚩В программировании (Java)

В Java симметричность важна при переопределении метода equals().
Если a.equals(b) == true, то обязательно должно быть b.equals(a) == true. Ошибочный код (нарушает симметричность)
class Person {
String name;

Person(String name) {
this.name = name;
}

@Override
public boolean equals(Object obj) {
if (obj instanceof String) { // ❌ Сравниваем с String (ошибка)
return this.name.equals(obj);
}
return false;
}
}

public class Main {
public static void main(String[] args) {
Person p = new Person("Alice");

System.out.println(p.equals("Alice")); // true
System.out.println("Alice".equals(p)); // false ❌ (нарушена симметричность)
}
}


Правильный способ
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return name.equals(person.name);
}


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 8
  • 💊 4
More from @easy_java_ru
  1. Oct 7, 2026🤔 К какой категории сущности относится Primary Key? Primary Key (первичный ключ) в базах…
  2. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для Java разработчика, которые нигде больше не пуб…
  3. Oct 7, 2026Post #2949
  4. Oct 6, 2026🤔 Какая сложность вставки элемента в LinkedList? - O(1) — если вставка происходит в начал…
  5. Oct 6, 2026🤔 К какому принципу ООП относится переопределение методов? Переопределение методов (Metho…
  6. Oct 6, 2026Post #2946
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →