|
|
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
Объясните, пожалуйста зачем в классе используется этот дикий генератор hashCode: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 13:50 |
|
||
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
JulT, Не понял вопроса. Зачем вообще, или почему такой дикий? Вот это уже прочитано и осознано? http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 13:53 |
|
||
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulT, Не понял вопроса. Зачем вообще, или почему такой дикий? Вот это уже прочитано и осознано? http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode() Нет, то, что он необходим это понятно, а вот почему такой сложный. В других классах, например, генерация хэша намного проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 14:00 |
|
||
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
JulTНет, то, что он необходим это понятно, а вот почему такой сложный. В других классах, например, генерация хэша намного проще Не потому ли что Double это тип с плавающей точкой, а hashCode - целое число. Поэтому для вычисления hashCode Double значение просто преобразуют в целочисленной на основе бит (чтобы вся информация сохранилась) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 14:04 |
|
||
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulTНет, то, что он необходим это понятно, а вот почему такой сложный. В других классах, например, генерация хэша намного проще Не потому ли что Double это тип с плавающей точкой, а hashCode - целое число. Поэтому для вычисления hashCode Double значение просто преобразуют в целочисленной на основе бит (чтобы вся информация сохранилась) Точно, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 14:06 |
|
||
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
И все таки не понятно зачем это делать, если у меня объявлено уникальное поле айди для этого класса, по нему и можно было бы сформировать хэш значение: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Или вся проблема в том, что айди в данном случае Long id, а не интежер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 14:29 |
|
||
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
JulT, Мы же не знаем какой у вас ID у Location. По-хорошему для ORM стоит использовать ID. Это верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 14:32 |
|
||
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
ID тут никак не годится, тем более IDENTITY. Дело в том, что функция hashCode() должна согласовываться с equals(). То есть там, где объекты эквивалентны, хеш должен совпадать. Теперь смотрим на описание класса - судя по всему, он хранит координаты, и совершенно логично предположить, что координаты с одинаковой широтой и долготой тут будут эквивалентны. Следовательно, и хеш в этом случае должен совпадать. Если при вычислении хеш-кода использовать что-то другое, кроме широты и долготы, совпадение нельзя гарантировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 14:42 |
|
||
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
Спасибо Blazkowicz, ivanra ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 15:31 |
|
||
|
Вопрос hashCode
|
|||
|---|---|---|---|
|
#18+
JulTBlazkowiczJulT, Не понял вопроса. Зачем вообще, или почему такой дикий? Вот это уже прочитано и осознано? http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode() Нет, то, что он необходим это понятно, а вот почему такой сложный. В других классах, например, генерация хэша намного проще Мы могли-бы сделать следующую хеш-функцию. Код: java 1. 2. 3. И она бы работала. Но проблема в том что она не будет идеальной с точки зрения хеша. Дело в том что гео-координаты на карте имеют скопления или "кластеры". Это точки сосредоточенные очень близко друг от друга. В хеше они дадут нелинейную гистограмму значений на выходе вследствие чего хеш-тах блица перестанет быть хешем и может выродиться в набор нескольких массивов (buckets) с "тормозным" поиском. Создатель этого класса знал об этом факте и позаботился о дополнительных процедурах улучшающих гистограмму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 15:41 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38704988&tid=2126850]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
193ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 555ms |

| 0 / 0 |
