原始类型的哈希码是什么,例如int?
例如,假设num是一个整数。int hasCode = 0;
if (num != 0) {
hasCode = hasCode + num.hashCode();
}
答案 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