Middle+
Lors du recalcul du hachage, le hachage reste-t-il le même ou en est-il un nouveau pour la clé?
sobes.tech IA
Réponse de l'IA
Lors du rehashing dans des structures de données telles que les tables de hachage, un nouveau hachage est calculé pour chaque clé. Cela est dû au fait que la taille de la table change, et pour répartir correctement les éléments dans les nouvelles paniers, il est nécessaire de recalculer le hachage en tenant compte de la nouvelle taille.
Autrement dit, le vieux hachage n'est pas conservé, mais pour chaque clé, la fonction de hachage est appelée à nouveau, et le résultat est utilisé pour déterminer la nouvelle position dans la table étendue.
Exemple en Go:
// Lors de l'augmentation de la taille de la table, rehash est appelé
func (ht *HashTable) rehash() {
oldBuckets := ht.buckets
ht.buckets = make([][]Entry, newSize)
for _, bucket := range oldBuckets {
for _, entry := range bucket {
newIndex := hash(entry.key) % newSize
ht.buckets[newIndex] = append(ht.buckets[newIndex], entry)
}
}
}
Ainsi, le hachage pour la clé est recalculé lors du rehashing.