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

对于hashCodeofint最自然的选择是使用它int本身。hashCode一个更好的问题是a使用什么,long因为它不适合int-size 的哈希码。你最好的来源——以及所有hashCode相关问题——将是Effective Java

于 2012-08-09T19:45:59.980 回答
9

没有可用hashCode()的原始类型方法int

Integer是 Wrapper 类类型并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 回答