Все ли объекты уникальны в HashMap

«Все ли объекты уникальны в HashMap» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В HashMap ключи должны быть уникальными, а значения могут дублироваться. Уникальность ключей обеспечивается через hashCode() и equals(). Если добавляется ключ с существующим хэш-кодом, старое значение перезаписывается.

Пример:

val map = HashMap<String, Int>()
map["key"] = 1
map["key"] = 2 // Перезапишет предыдущее значение
println(map) // {key=2}

Для корректной работы с пользовательскими объектами:

data class Person(val id: Int, val name: String)

val personMap = HashMap<Person, String>()
personMap[Person(1, "Alice")] = "Developer"
personMap[Person(1, "Alice")] = "Manager" // Перезапишет

Важно: изменяемые объекты как ключи могут вызвать проблемы, так как изменение поля после добавления сломает хэш-структуру.