Можно ли использовать как ключ изменяемый объект (например, массив)?

Ответ

Технически можно, но опасно: если изменить объект после добавления — его hashCode может измениться, и найти элемент станет невозможно.

Разбор: Использовать изменяемый объект ключом технически разрешено, но если после вставки изменить поля, влияющие на hashCode, элемент попадёт «не в тот» бакет и станет недоступен через get(). Ловушка в том, что компилятор не накладывает запретов на тип ключа, а хеш вычисляется в момент put() и не пересчитывается автоматически.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться