🗊Презентация Методи equals та hashcode

Нажмите для полного просмотра!
Методи equals та hashcode, слайд №1Методи equals та hashcode, слайд №2Методи equals та hashcode, слайд №3Методи equals та hashcode, слайд №4Методи equals та hashcode, слайд №5Методи equals та hashcode, слайд №6Методи equals та hashcode, слайд №7Методи equals та hashcode, слайд №8Методи equals та hashcode, слайд №9Методи equals та hashcode, слайд №10

Вы можете ознакомиться и скачать презентацию на тему Методи equals та hashcode. Доклад-сообщение содержит 10 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





 
Перевизначення методів equals та hashCode
Описание слайда:
Перевизначення методів equals та hashCode

Слайд 2





Методи equals та hashcode
Метод equals() – перевірка рівності елементів. Типове застосування – пошук в масивах, колекціях, картах.
Метод hashCode() – повертає хеш-функцію об'єкта. Якщо цей метод перевизначено, елементи можна використовувати в HashSet, а також як ключі HashMap. Якщо для цих типів перевизначається equals(), то повинен бути перевизначений і hashcode() .
Описание слайда:
Методи equals та hashcode Метод equals() – перевірка рівності елементів. Типове застосування – пошук в масивах, колекціях, картах. Метод hashCode() – повертає хеш-функцію об'єкта. Якщо цей метод перевизначено, елементи можна використовувати в HashSet, а також як ключі HashMap. Якщо для цих типів перевизначається equals(), то повинен бути перевизначений і hashcode() .

Слайд 3





Що можна сказати про код
class MyClass {
int a;
@Override
public boolean equals(MyClass other) {
return this.a == other.a;
}
}
Описание слайда:
Що можна сказати про код class MyClass { int a; @Override public boolean equals(MyClass other) { return this.a == other.a; } }

Слайд 4





Загальні вимоги до equals
Рефлексивність. Для будь-якого посилання ref ref.equals(ref) повинно завжди давати true.
Симетричність. x.equals(y)дорівнюєо true тоді і тільки тоді, коли y.equals(x).
Транзитивність. Якщо x.equals(y), y.equals(z), то x.equals(z).
Несуперечливість. Різні виклики equals для тих же об'єктів повинні давати той самий результат, якщо самі об'єкти не змінилися.
Порівняння з null. Для кожного не-null посилання ref.equals(null) завжди false.
Часто перевіряється ще й відповідність типів.
Описание слайда:
Загальні вимоги до equals Рефлексивність. Для будь-якого посилання ref ref.equals(ref) повинно завжди давати true. Симетричність. x.equals(y)дорівнюєо true тоді і тільки тоді, коли y.equals(x). Транзитивність. Якщо x.equals(y), y.equals(z), то x.equals(z). Несуперечливість. Різні виклики equals для тих же об'єктів повинні давати той самий результат, якщо самі об'єкти не змінилися. Порівняння з null. Для кожного не-null посилання ref.equals(null) завжди false. Часто перевіряється ще й відповідність типів.

Слайд 5





Загальні вимоги до hashCode
Несуперечливість під час виконання – різні виклики того самого об'єкта повинні давати той самий результат, якщо сам об'єкт не змінився.
Для рівних об'єктів значення хеш-функції повинні співпадати.
Для нерівних об'єктів неспівпадіння не обов'язкове, але дуже рекомендується.
Описание слайда:
Загальні вимоги до hashCode Несуперечливість під час виконання – різні виклики того самого об'єкта повинні давати той самий результат, якщо сам об'єкт не змінився. Для рівних об'єктів значення хеш-функції повинні співпадати. Для нерівних об'єктів неспівпадіння не обов'язкове, але дуже рекомендується.

Слайд 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.a) { return false; }
        if (this.b != other.b) {return false; }
        if (this.c != other.c) { return false; }
        return true;
    }
Описание слайда:
Можлива реалізація 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.a) { return false; } if (this.b != other.b) {return false; } if (this.c != other.c) { return false; } return true; }

Слайд 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.a) { return false; }
        if (this.b != other.b) {return false; }
        if (this.c != other.c) { return false; }
        return true;
    }
Описание слайда:
Можлива реалізація 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.a) { return false; } if (this.b != other.b) {return false; } if (this.c != other.c) { return false; } return true; }

Слайд 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;
    }
Описание слайда:
Можлива реалізация hashCode public int hashCode() { int hash = 3; hash = 31 * hash + this.a; hash = 31 * hash + this.b; hash = 31 * hash + this.c; return hash; }

Слайд 9





Або:
public int hashCode() {
    return this.toString().hashCode();
    }
Описание слайда:
Або: public int hashCode() { return this.toString().hashCode(); }

Слайд 10





Методи equals та compareTo
Природно, ці методи повинні бути узгоджені між собою.
Якщо compareTo визначений належним чином, то equals може бути визначений, наприклад, так:
return compareTo(other)==0;
Описание слайда:
Методи equals та compareTo Природно, ці методи повинні бути узгоджені між собою. Якщо compareTo визначений належним чином, то equals може бути визначений, наприклад, так: return compareTo(other)==0;



Похожие презентации
Mypresentation.ru
Загрузить презентацию