31

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

たとえば、numが整数だったとしましょう。

int hasCode = 0;

if (num != 0) {
  hasCode = hasCode + num.hashCode();
}
4

4 に答える 4

43

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整数の値はどこにありますか。

于 2012-08-09T19:48:20.873 に答える
42

最も自然な選択は、それ自体を使用するhashCodeことです。より良い質問は、サイズのハッシュコードに適合しないため、のに何を使用するかです。そのための最良の情報源、および関連するすべての質問は、EffectiveJavaですintinthashCodelonginthashCode

于 2012-08-09T19:45:59.980 に答える
9

hashCode()使用可能なプリミティブ型のメソッドはありませんint

Integerラッパークラスタイプでありhashcode()int

于 2012-08-09T19:44:23.850 に答える
1

この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

于 2016-01-15T14:18:37.337 に答える