Junior — Middle
¿Se puede usar una clase de datos con propiedades modificables como clave en una tabla hash?
sobes.tech AI
Respuesta de la IA
No se recomienda usar una clase de datos con propiedades modificables como clave en una tabla hash. Las claves en las tablas hash deben ser inmutables, ya que modificar las propiedades de un objeto que participa en el cálculo del hash o en la comparación puede llevar a perder el acceso al elemento.
Por ejemplo, si una propiedad de la clase data cambia, afectando a hashCode o equals, el objeto ya no será encontrado en la tabla hash:
data class User(var id: Int, var name: String)
val map = hashMapOf<User, String>()
val user = User(1, "Alice")
map[user] = "Developer"
user.name = "Bob" // Cambio en la propiedad
println(map[user]) // Puede devolver null, ya que hashCode cambió
Por lo tanto, es mejor usar objetos inmutables o claves con propiedades inmutables.