|
|
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. Как известно, для сравнения объектов HashSet использует equals, я переопределила его, согласно моей бизнес логике Person равны, когда равны номера паспортов. Т.е. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Но почему-то выдает все объекты в консоль: Код: java 1. Почему две Julia? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 12:51 |
|
||
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
JulT Как известно, для сравнения объектов HashSet использует equals, я переопределила его, согласно моей бизнес логике Person равны, когда равны номера паспортов. Почему две Julia? потому что хешкоды разные. сравнение идет только в том случае, когда хешкоды одинаковые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 12:58 |
|
||
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
JulTКак известно, для сравнения объектов HashSet использует equals Как известно, JavaDoc к классу java.lang.Object стоит знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 12:58 |
|
||
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
JulT, современные IDE могут сгенерить тебе реализацию hashCode(). Не всегда она идеальна но в твоём случае сойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 13:12 |
|
||
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
Ну ок, сделала так: Код: java 1. 2. 3. 4. все, естественно, заработало. НО! при одинаковом хэш коде, если я захочу, например, добавить свои данные в коллекцию типа хеш, все они будут скапливаться в одной корзине, что по сути приведет к тому, что моя хэш коллекция выродится в List. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 13:17 |
|
||
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
а, сорри, я ведь могу сделать хеш завязанный на passportCode ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 13:19 |
|
||
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
JulTа, сорри, я ведь могу сделать хеш завязанный на passportCode а так же на age и на name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 13:36 |
|
||
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
JulT, хешкод и иквалс взаимосвязанные если иквалс дает истину - то хешкоды должны быть одинаковыми если хешкоды разные - иквалс должен обязательно давать ложь ну и естественный результат - когда хешкоды одинаковы, а иквалс ложь несоблюдение правил приведет к проблемам хешколлекций и еще, у объекта, помещенного в хеш коллекцию не должен меняться хешкод, иначе не получиться найти объект, потому что он будет искать в корзине, соответствующей новому хешу, а он будет валяться в другой корзине. для ознакомления можно почитать http://habrahabr.ru/post/168195/ раз уж гугл забанен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 13:40 |
|
||
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulTа, сорри, я ведь могу сделать хеш завязанный на passportCode а так же на age и на name + ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 14:15 |
|
||
|
Вопрос по HashSet
|
|||
|---|---|---|---|
|
#18+
Andrew1411JulT, хешкод и иквалс взаимосвязанные если иквалс дает истину - то хешкоды должны быть одинаковыми если хешкоды разные - иквалс должен обязательно давать ложь ну и естественный результат - когда хешкоды одинаковы, а иквалс ложь несоблюдение правил приведет к проблемам хешколлекций и еще, у объекта, помещенного в хеш коллекцию не должен меняться хешкод, иначе не получиться найти объект, потому что он будет искать в корзине, соответствующей новому хешу, а он будет валяться в другой корзине. для ознакомления можно почитать http://habrahabr.ru/post/168195/ раз уж гугл забанен :) Спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 14:22 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39113945&tid=2124625]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 432ms |

| 0 / 0 |
