Java. Переопределение hashCode() и equals()

Вы - объект. Вы имеете свое собственное состояние, поведение и работу. Если исключить примитивы, то можно сказать, что все в Java - объект. Не просто объект, а Object с большой буквы O. Любое исключение, любое событие, любой массив наследуется от java.lang.Object.
Метод toString.
Его следует переопределять в тех случаях, когда необходимо иметь более подробную информацию про объект. Кстати, когда ссылка на объект передается в метод System.out.println(), метод toString() объекта вызывается автоматически.
Запуск класса HardToRead выдает следующий результат:
Данный вывод - это то, что вы получаете не переопределяя метод toString() класса Object. Метод печатает имя класса, за ним @ и шестнадцатиричное представление хэшкода объекта.
Результат будет более читабельным:
Переопределение equals()
При сравнении двух ссылок на объекты с использованием оператора == дает результат true только если две ссылки указывают на один и тот же объект. Класс String и классы-врапперы имеют переопределенные методы equals(), поэтому можно сравнивать два разных объекта по значению.
Переопределение hashCode()
Хешкоды обычно увеличивают производительность больших коллекций данных. Значение хешкода объета используется некоторыми классами-коллекциями. Можно рассматривать хешкод как тип ID объекта, необязательно уникальный. Коллекции, такие как HashMap и HashSet используют значение хешкода объекта для определения того, как объект должен храниться в коллекции.
Материалы, которые могут вас заинтересовать
- Java. Вложенные классы в методах
- Java. Создание объекта вложенного класса извне внешнего класса
- Java. Создание объекта вложенного класса изнутри внешнего класса
- Java. Создание объекта вложенного класса
- Java. Создание "регулярного" вложенного класса
- Java. Вложенные классы (Inner Classes)
- Java. Создание обобщенных методов
- Java. Обобщенные типы (Generic Declarations)
- Java. Использование карт (Using Maps)







автор, ну и где же переопределение этих методов?!
Тема сис... переопределения equals(), hashCode() не раскрыта! Я негодую
Спасибо, неплохо написано)
Отправить комментарий