Что такое хэш-код примитивного типа, например int?
например, допустим, что num является интергером.
int hasCode = 0;
if (num != 0) {
hasCode = hasCode + num.hashCode();
}
Что такое хэш-код примитивного типа, например int?
например, допустим, что num является интергером.
int hasCode = 0;
if (num != 0) {
hasCode = hasCode + num.hashCode();
}
Для hashCode
of int
наиболее естественным выбором является использование самого int
. Лучше вопрос, что использовать для hashCode
для long
, поскольку он не вписывается в хэш-код с размером int
. Ваш лучший источник этого &mdash и всех hashCode
связанных вопросов — будет Эффективная Java.
Взято из исходного кода 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()
метода для примитивного типа 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