Java-HashCode法语版

Conclusion

1.chaque instance doit renvoyer le valeur de hachage distinct.
2.le valeur de hachage est renvoyé par la méthode: hashCode(); cette méthode est initialement fourni par le Class de racine 'Object', il pourrait être implémenté.
3.quand deux objects sont égaux, leur valeur de hachage sont égaux. on revanche, quand deux valeur de hachage sont égaux, leurs objects ne sont pas obligatoire égaux.

Question

0.à quoi bon de savoir le hashCode de l'object?

Collection, trois type principaux, List, set, et Queue
List, facile à insérer et supprimer élément, mais difficile à le repérer.
Set, facile à repérer mais difficile à insérer et supprimer.
pour avoir un meilleur choix, on préfère non seulement facile à repérer, mais aussi facile à insérer et supprimer.
donc, on utilise the Map.

1.equals() et ==? comment c'est quoi les différences?

equals() est une méthode, elle est pour objectif de comparer les contenus de deux objects.
== est un opérateur, il est pour objectif de comparer soit le valeur quand il 'agit les variables primitives, soit le référence quand il s'git les variables références pour object.

2.Quand on a besoin méthode equals() et hashCode()?
3.Comment implémenter hashCode()?

le type renvoi de la méthode hashCode() est un nombre entier.
définis le commencement, s'il s'agit un nombre entier, on pourrait l'utiliser directement, sinon, appelez leur méthode hashCode();
Class A{
public int taille;
public String nom;
}
int hash = taille;
hash = hash*31+nom.hashCode();
continuez incursivement.
voici un résultat:


équivalant
Java-HashCode法语版_第1张图片
Exemple pour implémenter String.hashCode()
4.Comment implémenter equals()?

Vérifier d'abord s'il est == this
Vérifier s'il s'agit le même type de instance(getClass())
finalement, vérifier leurs contenu.


Java-HashCode法语版_第2张图片
Exemple pour implémenter String.equals()

你可能感兴趣的:(Java-HashCode法语版)