web-dev-qa-db-fra.com

Hashcode d'un int

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();
}
21
Ed Lee

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 .

35
Marko Topolnik

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;
}

value est la valeur de l'entier.

39
Konrad Reiche

Aucune méthode hashCode() pour le type primitif int n'est disponible.

Integer est le type de classe Wrapper et hashcode() renvoie un int

8
kosa

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

1
Amogh Mishra