web-dev-qa-db-ja.com

intのハッシュコード

Intなどのプリミティブ型のハッシュコードとは何ですか?

たとえば、numがintergerであったとしましょう。

int hasCode = 0;

if (num != 0) {
  hasCode = hasCode + num.hashCode();
}
21
Ed Lee

hashCodeintの場合、最も自然な選択はint自体を使用することです。より良い質問は、hashCodeサイズのハッシュコードに収まらないため、longintに何を使用するかです。そのための最良のソース(およびすべてのhashCode関連の質問)は、 Effective Java です。

35
Marko Topolnik

Integer.class ソースコード:

/**
 * 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は整数の値です。

39
Konrad Reiche

プリミティブ型inthashCode()メソッドはありません。

IntegerはWrapperクラスタイプであり、hashcode()intを返します

8
kosa

Java.lang.Integer.hashCode()メソッドは、intのプリミティブ値のハッシュコード値を返しますが、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());
    }

}`

結果:

値= 20

ソースリンク: http://www.tutorialspoint.com/Java/lang/integer_hashcode.htm

1
Amogh Mishra