Что такое хэш-код примитивного типа, например int?
например, предположим, что число было целым числом.
int hasCode = 0;
if (num != 0) {
hasCode = hasCode + num.hashCode();
}
Что такое хэш-код примитивного типа, например int?
например, предположим, что число было целым числом.
int hasCode = 0;
if (num != 0) {
hasCode = hasCode + num.hashCode();
}
Для hashCode из int наиболее естественным выбором является использование самого int. Лучше задать вопрос, что использовать для hashCode в long, поскольку он не вписывается в хэш-код размером int. Лучшим источником для этого и всех связанных с hashCode вопросов будет Effective Java.
long, и я посмотрел его, это: (int)(value ^ (value >>> 32));
- person Konrad Reiche; 09.08.2012
java.lang.Long, и это то, что рекомендует Effective Java.
- person Marko Topolnik; 09.08.2012
hashCode примитивных оболочек --- в этом случае я бы рекомендовал grepcode над громоздкой загрузкой.
- person Marko Topolnik; 09.08.2012
Integer.hashCode и Long.hashCode< /a> на самом деле лучший выбор для изучения этого. Все реализации должны соответствовать спецификации.
- person obataku; 10.08.2012
Взято из исходного кода 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
Integer(или аналогичный) получитсяInteger.hashCode. - person Tom Hawtin - tackline   schedule 09.08.2012