скажите пожалуйста , зачем мы используем методы equals & hashCode если мы в методе main используем contains. ???
Роберт
23 уровень
товарищи
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
7 мая 2019, 20:29
contain() метод использует сравнение через equals. Если оно не переопределено, то по умолчанию будет сранивать через Objects.equals() который просто через == сравнивает ссылки.
Поэтому этот код даст false:
Два разных объекта - две разных ссылки, они не равны.
Поэтому и важна эта тема, тем что мы часто будем переопределять это для неких бизнес-сущностей.
Если с базы данных придут два объекта типа User, мы будем сравнивать их по айдишнику. ОДинаковый айдишник, значит это одинаковые Юзера.
Хотя как объекты они могут иметь разные ссылки.
То есть equals позволяет нам управлять логикой сравнения, String? Ну так сравниваем текст, Solution , ну так сравним Имя и Фамилию, то есть мы сами определяем принципы равности объекта.
Иначе Для бездушного компьютера миллион новых объектов но с одинаковым значением будет миллионом разных объектов. +1
Роберт
8 мая 2019, 06:28
спасибо огромное!!
+1
Alex T
7 мая 2019, 20:20
contains() будет использовать equals() и hashCode(), когда будет проверять наличие похожего элемента.
0