Pour les classes de Données dans Kotlin, hashcode() la méthode va générer et de revenir par le même entier si les valeurs des paramètres sont les mêmes pour les deux objets.
val user = User("Alex", 1)
val secondUser = User("Alex", 1)
val thirdUser = User("Max", 2)
println(user.hashCode().equals(secondUser.hashCode()))
println(user.hashCode().equals(thirdUser.hashCode()))
L'exécution de ce code renvoie True et False comme lorsque nous avons créé secondUser objet, nous avons passé même argument que l'objet de l'utilisateur, de sorte hashCode() integer générés pour les deux d'entre eux seront même.
aussi, si vous vérifiez ceci:
println(user.equals(thirdUser))
Elle retourne la valeur false.
Comme par hashCode() la méthode docs
open fun hashCode(): Int (source)
Renvoie un code de hachage de la valeur de l'objet. Les conditions générales du contrat de
hashCode est:
Chaque fois qu'elle est invoquée sur le même objet plus d'une fois, le hashCode
méthode doit constamment revenir par le même entier, à condition qu'aucun
l'information utilisée dans les égaux des comparaisons sur l'objet est modifié.
Si deux objets sont égaux selon la méthode equals (), puis de l'appel d'
la méthode hashCode sur chacun des deux objets doivent produire les mêmes
résultat sous forme d'entier.
Pour plus de détails, voir cette discussion ici