[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-kakova-rol-equals-i-hashcode-v-hashmap":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},482,"kakova-rol-equals-i-hashcode-v-hashmap",12,"collections","Collections","📚","Какова роль equals() и hashCode() в HashMap","`hashCode()` определяет корзину, в которую попадет элемент, а `equals()` — сравнивает ключи внутри корзины для нахождения конкретного элемента.\n\nАлгоритм поиска:\n\n1. Вычисляется `hashCode()` искомого ключа.\n2. По hashCode определяется индекс корзины (`hash & (capacity - 1)`).\n3. В корзине перебираются элементы, для каждого вызывается `equals()` с искомым ключом.\n4. Первый элемент, для которого `equals()` вернул true, считается найденным.\n\nКонтракт: если `a.equals(b) == true`, то `a.hashCode() == b.hashCode()`. Обратное не обязательно: объекты с одинаковым hashCode могут быть не equals (коллизия). Нарушение этого контракта приведет к тому, что HashMap не сможет найти элемент, даже если он есть в таблице.\n\n> **На собеседовании:** объясните роль каждого метода: hashCode — находит корзину, equals — находит элемент в корзине. Обязательно сформулируйте контракт hashCode\u002Fequals.","","junior",[15,16,17],"core","основы","jcf",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":34,"featuredSnippetReady":35},"Роль equals() и hashCode() в HashMap — Gymterview","hashCode() определяет корзину, equals() находит элемент в корзине. Контракт: equals=true → hashCode одинаковый. Нарушение = потеря элементов.","equals() и hashCode() в HashMap — Gymterview","hashCode → корзина. equals → элемент в корзине. Контракт: equals=true → hashCode одинаковый.",[26,27,28,29,30,31,32,33],"HashMap","equals","hashCode","корзина","контракт","коллизия","Java","собеседование","hashCode() определяет индекс корзины (hash & capacity-1). equals() сравнивает ключи в корзине для нахождения элемента. Контракт: если a.equals(b) == true, то a.hashCode() == b.hashCode(). Нарушение → элемент не найдётся.",true]