[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-core-kakovy-pravila-pereopredeleniya-metoda-object-hashcode":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":19,"progress":20,"seo":21},332,"kakovy-pravila-pereopredeleniya-metoda-object-hashcode",2,"java-core","Java Core","☕","Каковы правила переопределения метода `Object.hashCode()`?","1. Если два объекта равны по `equals()`, то их `hashCode()` должен быть одинаковым.\n2. Если два объекта не равны по `equals()`, их `hashCode()` не обязан различаться, но различие улучшает производительность хэш-таблиц.\n3. Метод `hashCode()` должен возвращать одно и то же значение при многократном вызове для одного и того же объекта, если поля, участвующие в вычислении, не менялись.\n4. Необходимо использовать те же поля, что и в `equals()`.","","middle",[15,16,17,18],"core","hashcode","best-practices","override",[],null,{"title":22,"description":23,"ogTitle":22,"ogDescription":24,"keywords":25,"schemaAnswer":30,"featuredSnippetReady":31},"Правила переопределения hashCode() в Java — Gymterview","Правила и рекомендации по переопределению метода Object.hashCode() в Java: выбор полей, связь с equals(), использование уникальных примитивных полей.","Правила переопределения hashCode(): выбор уникальных полей и согласованность с equals().",[26,27,28,29],"переопределение hashCode Java","правила hashCode","override hashCode","хэш-код рекомендации","Общий совет: выбирать поля, которые с большой долей вероятности будут различаться. Необходимо использовать уникальные, лучше всего примитивные поля, например id или uuid. При этом нужно следовать правилу: если поля задействованы при вычислении hashCode(), то они должны быть задействованы и при выполнении equals().",true]