![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Pawl |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Доброго времени суток Господа!
Решил поднять этот вопрос, т. к. не нашел ответа в предложенных мне автоматических ссылках на похожие темы. Вопрос вот какой: есть код:
как видно, тут я переопределяю в классе Student методы hashCode и equals для того, чтобы в HashMap не попадали студенты с одинаковыми именами. И тут они действительно туда не попадают. Вывод программы: Piter Pen 9 Jon Dow 7 но если я переопределяю equals так:
вывод уже такой: Piter Pen 9 Piter Pen 8 Jon Dow 7 В то же время, если вместо HashMap использовать TreeMap таким образом:
Вывод получается каким надо (т. е. Piter Pen заменяется). Вообще, любой стандартный класс, реализующий Map, в котором присутствует слово Hash, корректно работает только с equals, переопределенным "по старинке" (я проверял Заранее благодарю! -------------------- В действительности всё совсем не так, как на самом деле |
||||||
|
|||||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Извините, затупил!
equals в любом случае принимает только Object, а для TreeMap eqauls вовсе переопределять не надо, достаточно одного hashCode. Тему закрываю. -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
З. ы. Кстати, hashCode для TreeMap тоже переопределять не нужно...
-------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |