Ответ
В 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" // Перезапишет
Важно: изменяемые объекты как ключи могут вызвать проблемы, так как изменение поля после добавления сломает хэш-структуру.