Почему не стоит использовать
byte[] в качестве ключа в HashMap?Ответ: У массивов в Java не переопределены методы hashCode() и equals(). Хэш-код массива основан на его адресе в памяти, а equals() сравнивает только ссылки.
Из-за этого два массива с одинаковыми значениями считаются разными ключами. Поэтому объект, сохранённый под ключом byte[], можно получить только при обращении тем же самым экземпляром массива, а не новым массивом с теми же данными.
Именно поэтому byte[] не подходит для ключей — он нарушает контракт HashMap.
tags: #собеседование
📱 Java Developer | 📲 MAX