Hashcode для int - программирование

Hashcode для int

Что такое хэш-код примитивного типа, например int?

например, допустим, что num является интергером.

int hasCode = 0;

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

Ответ 1

Для hashCode of int наиболее естественным выбором является использование самого int. Лучше вопрос, что использовать для hashCode для long, поскольку он не вписывается в хэш-код с размером int. Ваш лучший источник этого &mdash и всех hashCode связанных вопросов — будет Эффективная Java.

Ответ 2

Взято из исходного кода 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 - значение целого числа.

Ответ 3

Нет hashCode() метода для примитивного типа int.

Integer - тип класса Wrapper, а hashCode() возвращает int

Ответ 4

Метод 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