У меня очень плохое понимание внутреннего функционирования hashMap и hashSet, и мне нужна помощь!
Итак:
HashMap:
Я не могу поместить два объекта с одинаковыми ключами. Поэтому, когда у меня есть объекты A и B, первый имеет,
например: хеш-код(): 3918192, а второй - 3918191.
Давайте для простоты представим, что hashMap имеет размер 4 и преобразует хэш-коды в адрес, например: 3 для A и 3 для B, поэтому они находятся по одному и тому же адресу. Предположение о том, что HashMap не хранит объекты с одинаковыми ключами, требует более подробной информации, нужно ли нам сказать: HashMap не добавляет два объекта с одинаковым хеш-кодом после операции MODULO?
Или он проверяет полный хэш-код() когда у него есть два объекта, потенциально имеющие один и тот же адрес? и если два hashCode() различны, создайте связанный список?
для HashSet:
он сохраняет объект по адресу, используя те же шаги из hashMap, но подождите, если я снова возьму приведенный выше пример, ПЛЮС, давайте признаем, что объекты имеют метод равенства и hashCode(), возвращающий те же значения, что и выше: 3918192 для A и 3918191 для B,
затем hashSet поместит А в 3 и Б в ? 3! но здесь я думаю, что hashSet будет использовать Equals, чтобы проверить, действительно ли они равны! если это не так, по какому адресу будет помещена буква B?
Подробнее здесь: https://stackoverflow.com/questions/786 ... -or-values
Я не понимаю, как HashMap и HashSet управляют несколькими ключами или значениями [дубликат] ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Исключение сериализации Java HashSet и HashMap JBoss-RMI с OpenJDK-1.8.0-312
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Исключение сериализации Java HashSet и HashMap JBoss-RMI с OpenJDK-1.8.0-312
Anonymous » » в форуме JAVA - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-