int的哈希码

时间:2012-08-09 19:43:33

标签: java int hashcode primitive

原始类型的哈希码是什么,例如int?

例如,假设num是一个整数。

int hasCode = 0;

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

4 个答案:

答案 0 :(得分:38)

取自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是整数的值。

答案 1 :(得分:34)

对于hashCode的{​​{1}},最自然的选择是使用int本身。一个更好的问题是int的{​​{1}}使用什么,因为它不适合hashCode大小的哈希码。您和long相关问题的最佳来源是Effective Java

答案 2 :(得分:8)

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

Integer是Wrapper类类型,hashcode()返回int

答案 3 :(得分: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