Рассмотрим следующую Java-программу:
|
Выход:
Not Equal
Причина вывода «Не равно» проста: когда мы сравниваем c1 и c2, проверяется, ссылаются ли оба c1 и c2 на один и тот же объект или нет ( переменные объекта всегда являются ссылками в Java ). c1 и c2 относятся к двум разным объектам, поэтому значение (c1 == c2) равно false. Если мы создадим еще одну ссылку, скажем, c3, как показано ниже, то (c1 == c3) даст true.
|
Итак, как мы проверяем равенство значений внутри объектов? Все классы в Java наследуются от класса Object прямо или косвенно (см. Пункт 1 этого ). Класс Object имеет несколько основных методов, таких как clone (), toString (), equals () и т. Д. Мы можем переопределить метод equals в нашем классе, чтобы проверить, имеют ли два объекта одинаковые данные или нет.
|
Выход:
Equal
В качестве примечания, когда мы переопределяем equals (), рекомендуется также переопределить метод hashCode (). Если мы этого не сделаем, равные объекты могут получить разные хеш-значения; и коллекции на основе хешей, включая HashMap, HashSet и Hashtable, не работают должным образом (см. это для более подробной информации). Подробнее о hashCode () мы расскажем в отдельном посте.
Ссылки:
Эффективное Java, второе издание
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Обработка исключений с переопределением метода в Java
- Разница между перегрузкой метода и переопределением метода в Java
- Метод стека equals () в Java с примером
- Метод HashSet equals () в Java с примером
- YearMonth метод equals () в Java
- GregorianCalendar equals () метод в Java
- ConcurrentSkipListSet метод equals () в Java
- Метод BigDecimal equals () в Java
- Метод equimal () DecimalStyle в Java с примером
- LongBuffer метод equals () в Java
- AbstractSequentialList equals () метод в Java с примером
- Метод CopyOnWriteArraySet equals () в Java
- Вектор равно () метод в Java
- StringWriter метод equals () в Java с примером
- Сопоставьте метод equals () в Java с примерами
0.00 (0%) 0 votes