Винаги ли два обекта ще бъдат равни, когато техният метод compareTo () връща нула?
Винаги ли два обекта ще бъдат равни, когато техният метод compareTo () връща нула?

Видео: Винаги ли два обекта ще бъдат равни, когато техният метод compareTo () връща нула?

Видео: Винаги ли два обекта ще бъдат равни, когато техният метод compareTo () връща нула?
Видео: По следам древней цивилизации? 🗿 Что, если мы ошиблись в своем прошлом? 2024, Април
Anonim

То е препоръчва това сравни с само се завръща 0, ако повикване до равно на На същите обекти би се връщане вярно: сравни с (e2) == 0 има същото булева стойност като e1. равно на (e2) за всяко e1 и e2 от клас C. Имайте предвид, че null е не е екземпляр на никакъв клас, и e.

Освен това, възможно ли е equals () да върне false, дори ако съдържанието на два обекта е еднакво?

4 отговора. В java методът public boolean равно на ( Обект obj) се наследява от Обект . Въпреки това, прилагането на метода, както е дефинирано в Обект клас е това равно на метод ще върнете ако и само ако на два обекта се сравняват са същото екземпляр.

Впоследствие въпросът е защо compareTo () трябва да е последователен с метода equals () в Java? Това е така, защото интерфейсът на картата е дефиниран от гледна точка на равно на операция, но картата извършва всички ключови сравнения, използвайки своите сравни с (или сравни) метод , така че два ключа, които се считат равни с това метод са от гледна точка на сортираната карта, равни.

Имайки предвид това, каква е разликата между метода == equals () и compareTo ()?

сравни с : Сравнява два низа лексикографски. равно на : Сравнява този низ с посочения обект. сравни с сравнява два низа по техните знаци (при същия индекс) и съответно връща цяло число (положително или отрицателно). равно на() проверява дали два обекта са еднакви или не и връща булева стойност.

Можем ли да заменим метода compareTo?

Отмяна на метода compareTo Трябва да върне отрицателно цяло число (обикновено -1), ако текущият задействащ обект е по-малък от предадения един и положително цяло число (обикновено +1), ако е по-голямо от, и 0, ако е равно. метод compareTo should хвърля изключение, ако предаденият обект има несъвместим тип или null.

Препоръчано: