Junior — Middle
¿Qué tipos de datos clave se permiten para su uso en una tabla hash?
sobes.tech AI
Respuesta de la IA
En tablas hash (por ejemplo, en Dart, utilizado en Flutter), las claves pueden ser objetos de cualquier tipo, siempre que implementen correctamente los métodos hashCode y ==. Esto es necesario para calcular correctamente el valor hash y comparar las claves.
Por lo general, se utilizan tipos primitivos, como cadenas (String), números (int), pero también se pueden usar clases personalizadas si se sobrescriben estos métodos. Por ejemplo:
class Person {
final String name;
final int id;
Person(this.name, this.id);
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is Person && runtimeType == other.runtimeType && id == other.id;
@override
int get hashCode => id.hashCode;
}
void main() {
var map = <Person, String>{};
var p = Person('Alice', 1);
map[p] = 'Developer';
print(map[p]); // Developer
}
Por lo tanto, las claves deben ser inmutables y tener métodos hashCode y == correctamente implementados.