La méthode hashCode()
dans la classe Object en Java est une fonction incorporée qui retourne un code de hachage int pour l'instance actuelle de l'objet. Cette méthode est pertinente pour les objets que vous souhaitez utiliser comme clés de hachage dans une collection qui utilise le hachage, comme HashMap
, HashSet
ou HashTable
.
Dans ce contexte, un code de hachage est un entier unique (bien qu potentiellement partagé avec d'autres objets) qui est généré à partir des données dans l'objet. Généralement, les objets qui sont égaux (selon la méthode equals()
) ont le même code de hachage.
Voici un exemple de comment vous pourriez utiliser la méthode hashCode()
. Supposons que vous ayez un objet Personne
avec des attributs nom
et email
. Vous pourriez générer un code de hachage en utilisant les codes de hachage de nom
et email
, peut-être en les additionnant.
class Personne {
private String nom;
private String email;
@Override
public int hashCode() {
return nom.hashCode() + email.hashCode();
}
}
Il est important de noter que la méthode hashCode()
n'est pas conçue pour obtenir un identifiant unique pour chaque objet. Deux objets distincts peuvent théoriquement avoir le même code de hachage, bien que la probabilité soit faible.
Finalement, il est recommandé que si vous réimplémentez la méthode equals()
, il serait nécessaire de réimplémenter la méthode hashCode()
également. Cela est dû au contrat de hashCode()
qui stipule que si deux objets sont considérés comme égaux avec la méthode equals(Object)
, alors le résultat de hashCode()
doit être le même pour ces deux objets. Cela assure un comportement cohérent lors de l'utilisation de ces objets en tant que clés dans les collections basées sur des hachages.