[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-core-kakimi-svoystvami-obladaet-porozhdaemoe-equals-otnoshenie-ekvivalentnosti":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},331,"kakimi-svoystvami-obladaet-porozhdaemoe-equals-otnoshenie-ekvivalentnosti",2,"java-core","Java Core","☕","Какими свойствами обладает порождаемое `equals()` отношение эквивалентности?","+ _Рефлексивность_: для любой ссылки на значение `x`, `x.equals(x)` вернет `true`;\n+ _Симметричность_: для любых ссылок на значения `x` и `y`, `x.equals(y)` должно вернуть `true`, тогда и только тогда, когда `y.equals(x)` возвращает `true`.\n+ _Транзитивность_: для любых ссылок на значения `x`, `y` и `z`, если `x.equals(y)` и `y.equals(z)` возвращают `true`, тогда и `x.equals(z)` вернёт `true`;\n+ _Непротиворечивость_: для любых ссылок на значения `х` и `у`, если несколько раз вызвать `х.equals(y)`, постоянно будет возвращаться значение `true` либо постоянно будет возвращаться значение `false` при условии, что никакая информация, используемая при сравнении объектов, не поменялась.\n\nДля любой ненулевой ссылки на значение `х` выражение `х.equals(null)` должно возвращать `false`.","","junior",[15,16,17],"core","equivalence","equals",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":31,"featuredSnippetReady":32},"Свойства отношения эквивалентности equals() в Java — Gymterview","Свойства отношения эквивалентности метода equals() в Java: рефлексивность, симметричность, транзитивность, непротиворечивость. Контракт equals().","Свойства отношения эквивалентности equals() — Gymterview","Свойства метода equals(): рефлексивность, симметричность, транзитивность и непротиворечивость.",[26,27,28,29,30],"equals контракт Java","рефлексивность equals","симметричность equals","транзитивность equals","отношение эквивалентности","Рефлексивность: для любой ссылки x, x.equals(x) вернёт true. Симметричность: x.equals(y) должно вернуть true тогда и только тогда, когда y.equals(x) возвращает true. Транзитивность: если x.equals(y) и y.equals(z) возвращают true, то и x.equals(z) вернёт true. Непротиворечивость: многократный вызов x.equals(y) должен возвращать одно и то же значение при неизменных данных. Для любой ненулевой ссылки x выражение x.equals(null) должно возвращать false.",true]