什么是原始类型的哈希码,例如 int?
例如,假设 num 是一个整数。
int hasCode = 0;
if (num != 0) {
hasCode = hasCode + num.hashCode();
}
取自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
整数的值在哪里。
对于hashCode
ofint
最自然的选择是使用它int
本身。hashCode
一个更好的问题是a使用什么,long
因为它不适合int
-size 的哈希码。你最好的来源——以及所有hashCode
相关问题——将是Effective Java。
没有可用hashCode()
的原始类型方法int
。
Integer
是 Wrapper 类类型并hashcode()
返回一个int
该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