Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpOlEq 50 of 147 menu
◀ ▶

Сравнение объектов через equals в Java

Сравнивать два объекта по смыслу удобнее через отдельный метод, а не только через оператор равенства ссылок. Такой метод в Java называется equals; у Object он реализован так же, как ==: true только если обе переменные указывают на один и тот же экземпляр в памяти.

Два разных объекта Post с одинаковым заголовком при стандартном equals не равны - совпадает лишь адрес:

class Post { public String title; public Post(String title) { this.title = title; } }

Создадим два объекта с одним текстом и сравним ссылки и equals:

Post first = new Post("News"); Post second = new Post("News"); System.out.println(first == second); System.out.println(first.equals(second));

Если второй переменной присвоить тот же объект, что и первой, и ==, и equals вернут true:

Post first = new Post("News"); Post same = first; System.out.println(first.equals(same));

Сравнивать объекты через == имеет смысл, когда важна именно одна и та же ссылка. Для проверки «одинаковые ли данные в полях» позже переопределяют equals; до этого поведение остаётся как у Object.

Создайте два разных объекта Employee с одинаковым именем. Выведите результат first.equals(second).

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить