39. Почему нельзя использовать byte[] в качестве ключа в HashMap?
UNKNOWNХэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива(метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному
Object.hashCode() на основании адреса массива).
Так же у массивов не переопределен equals и выполняется сравнение указателей. Это приводит к тому, что обратиться к сохраненному с ключом-массивом элементу не получится при использовании другого массива такого же размера и с такими же элементами, доступ можно осуществить лишь в одном случае — при использовании той же самой ссылки на массив, что использовалась для сохранения элемента
Предыдущий вопрос: 38. Возможна ли ситуация, когда HashMap выродится в список даже с ключами имеющими разные hashCode()?
Следующий вопрос: 40. Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()?
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку:напишите мне