Слайды и текст доклада
Pic.1
Перевизначення методів equals та hashCode
Pic.2
Методи equals та hashcode Метод equals() – перевірка рівності елементів. Типове застосування – пошук в масивах, колекціях, картах. Метод hashCode() – повертає хеш-функцію об'єкта. Якщо цей метод …
Pic.3
Що можна сказати про код class MyClass { int a; @Override public boolean equals(MyClass other) { return this. a == other. a; } }
Pic.4
Загальні вимоги до equals Рефлексивність. Для будь-якого посилання ref ref. equals(ref) повинно завжди давати true. Симетричність. x. equals(y)дорівнюєо true тоді і тільки тоді, коли y. equals(x). …
Pic.5
Загальні вимоги до hashCode Несуперечливість під час виконання – різні виклики того самого об'єкта повинні давати той самий результат, якщо сам об'єкт не змінився. Для рівних об'єктів …
Pic.6
Можлива реалізація equals public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj. getClass()) { return false; } final Kl other = (Kl) obj; if (this. a != other. …
Pic.7
Можлива реалізація equals public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj. getClass()) { return false; } final Kl other = (Kl) obj; if (this. a != other. …
Pic.8
Можлива реалізация hashCode public int hashCode() { int hash = 3; hash = 31 * hash + this. a; hash = 31 * hash + this. b; hash = 31 * hash + this. c; return hash; }
Pic.9
Або: public int hashCode() { return this. toString(). hashCode(); }
Pic.10
Методи equals та compareTo Природно, ці методи повинні бути узгоджені між собою. Якщо compareTo визначений належним чином, то equals може бути визначений, наприклад, так: return compareTo(other)==0;
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!