JAVA_IIBRARY Telegram 1720
Вот суть работы HashMap:

Сначала вызывается hashCode(), чтобы определить, в какой бакет попадёт ключ.

Внутри бакета вызывается equals(), чтобы проверить, есть ли уже такой ключ.

Если переопределить только equals(), но оставить дефолтный hashCode() (по адресу в памяти), получится проблема. Два объекта, которые равны по equals(), могут иметь разные хэши. Тогда они попадут в разные бакеты, и HashMap воспримет их как разные ключи.

Итог: поиск по ключу может “ломаться”, значения будут “теряться”, а одинаковые по смыслу ключи могут храниться дублирующимися.

Поэтому существует контракт: если объекты равны по equals(), они обязаны возвращать одинаковый hashCode(). В противном случае любые коллекции на основе хэшей (HashMap, HashSet, Hashtable) будут вести себя неправильно.

👉 Вывод прост. Всегда переопределяй equals() и hashCode() вместе.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👀3



tgoop.com/Java_Iibrary/1720
Create:
Last Update:

Вот суть работы HashMap:

Сначала вызывается hashCode(), чтобы определить, в какой бакет попадёт ключ.

Внутри бакета вызывается equals(), чтобы проверить, есть ли уже такой ключ.

Если переопределить только equals(), но оставить дефолтный hashCode() (по адресу в памяти), получится проблема. Два объекта, которые равны по equals(), могут иметь разные хэши. Тогда они попадут в разные бакеты, и HashMap воспримет их как разные ключи.

Итог: поиск по ключу может “ломаться”, значения будут “теряться”, а одинаковые по смыслу ключи могут храниться дублирующимися.

Поэтому существует контракт: если объекты равны по equals(), они обязаны возвращать одинаковый hashCode(). В противном случае любые коллекции на основе хэшей (HashMap, HashSet, Hashtable) будут вести себя неправильно.

👉 Вывод прост. Всегда переопределяй equals() и hashCode() вместе.

👉 Java Portal

BY Java Portal | Программирование




Share with your friend now:
tgoop.com/Java_Iibrary/1720

View MORE
Open in Telegram


Telegram News

Date: |

How to Create a Private or Public Channel on Telegram? As of Thursday, the SUCK Channel had 34,146 subscribers, with only one message dated August 28, 2020. It was an announcement stating that police had removed all posts on the channel because its content “contravenes the laws of Hong Kong.” How to Create a Private or Public Channel on Telegram? Administrators Read now
from us


Telegram Java Portal | Программирование
FROM American