Hashcode of an int

2019-01-17 15:56发布

What is the hashcode of a primitive type, such as int?

for example, let's say num was an interger.

int hasCode = 0;

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

4条回答
不美不萌又怎样
2楼-- · 2019-01-17 16:12

Taken from the Integer.class source code:

/**
 * 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;
}

Where value is the value of the integer.

查看更多
3楼-- · 2019-01-17 16:18

For the hashCode of an int the most natural choice is to use the int itself. A better question is what to use for the hashCode of a long since it doesn't fit into the int-sized hashcode. Your best source for that—and all hashCode-related questions—would be Effective Java.

查看更多
叼着烟拽天下
4楼-- · 2019-01-17 16:21

The java.lang.Integer.hashCode() method returns a hash code value for primitive value of int but represented as an Integer object.

/**
 * 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());
    }

}`

Results:

Value = 20

Source Link: http://www.tutorialspoint.com/java/lang/integer_hashcode.htm

查看更多
乱世女痞
5楼-- · 2019-01-17 16:28

No hashCode() method for primitive type int available.

Integer is Wrapper class type and hashcode() returns an int

查看更多
登录 后发表回答