Junior — Middle
Quels types de données clés sont autorisés pour une utilisation dans une table de hachage?
sobes.tech IA
Réponse de l'IA
Dans les tables de hachage (par exemple, en Dart, utilisé dans Flutter), les clés peuvent être des objets de n'importe quel type, à condition qu'ils implémentent correctement les méthodes hashCode et ==. Cela est nécessaire pour le calcul correct de la valeur de hachage et la comparaison des clés.
Le plus souvent, on utilise des types primitifs, comme les chaînes (String), les nombres (int), mais on peut également utiliser des classes personnalisées si ces méthodes sont redéfinies. Par exemple :
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] = 'Développeur';
print(map[p]); // Développeur
}
Ainsi, les clés doivent être immuables et avoir des méthodes hashCode et == correctement implémentées.