Quel est le hashcode d'un type primitif, comme int?
par exemple, disons que num était un entier.
int hasCode = 0;
if (num != 0) {
hasCode = hasCode + num.hashCode();
}
Pour le hashCode
d'un int
le choix le plus naturel est d'utiliser le int
lui-même. Une meilleure question est de savoir quoi utiliser pour le hashCode
d'un long
car il ne rentre pas dans le code de hachage de la taille int
. Votre meilleure source pour cela - et toutes les questions liées à hashCode
- serait Java efficace .
Tiré du Integer.class
code source:
/**
* Returns a hash code for this {@code Integer}.
*
* @return a hash code value for this object, equal to the
* primitive {@code int} value represented by this
* {@code Integer} object.
*/
public int hashCode() {
return value;
}
Où value
est la valeur de l'entier.
Aucune méthode hashCode()
pour le type primitif int
n'est disponible.
Integer
est le type de classe Wrapper et hashcode()
renvoie un int
La méthode Java.lang.Integer.hashCode()
renvoie une valeur de code de hachage pour la valeur primitive de int
mais représentée comme un objet Integer
.
/**
* Returns a hash code value for an Integer,
* equal to the primitive int value it represents.
*/
public class IntegerDemo {
public static void main(String[] args){
Integer i = new Integer("20");
System.out.println("Value = " + i.hashCode());
}
}`
Résultats:
Valeur = 20
Lien source: http://www.tutorialspoint.com/Java/lang/integer_hashcode.htm