Budú dva objekty vždy rovnaké, keď ich metóda CompareTo () vráti nulu?
Budú dva objekty vždy rovnaké, keď ich metóda CompareTo () vráti nulu?

Video: Budú dva objekty vždy rovnaké, keď ich metóda CompareTo () vráti nulu?

Video: Budú dva objekty vždy rovnaké, keď ich metóda CompareTo () vráti nulu?
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, Smieť
Anonim

to je odporučil to porovnať s iba sa vracia 0, ak zavoláte na rovná sa na rovnaké predmety by vrátiť pravda: porovnať s (e2) == 0 má to isté boolovská hodnota ako e1. rovná sa (e2) pre každé e1 a e2 triedy C. Všimnite si, že null je nie je inštanciou žiadnej triedy a e.

Okrem toho, je možné, aby sa rovná () vrátilo false, aj keď je obsah dvoch objektov rovnaký?

4 odpovede. V jave metóda public boolean rovná sa ( Objekt obj) sa dedí z Objekt . Avšak implementácia metódy, ako je definovaná v Objekt trieda je to rovná sa metóda bude vrátiť ak a len ak a dva objekty porovnávané sú rovnaký príklad.

Následne je otázkou, prečo by mala byť metóda porovnanieTo () konzistentná s metódou rovná sa () v Jave? Je to tak preto, že rozhranie mapy je definované z hľadiska rovná sa ale mapa vykonáva všetky kľúčové porovnania pomocou svojho porovnať s (alebo porovnaj) metóda , teda dva kľúče, ktoré sa považujú rovný týmto metóda sú z hľadiska triedenej mapy rovný.

Vzhľadom na to, aký je rozdiel medzi metódou == rovná sa () a porovnávať s ()?

porovnať s : Lexikograficky porovnáva dva reťazce. rovná sa : Porovná tento reťazec so zadaným objektom. porovnať s porovná dva reťazce podľa ich znakov (v rovnakom indexe) a podľa toho vráti celé číslo (kladné alebo záporné). rovná sa() skontroluje, či sú dva objekty rovnaké alebo nie, a vráti boolovskú hodnotu.

Môžeme prepísať metódu porovnanie?

Prepísať metódu porovnávania Mal by vrátiť záporné celé číslo (zvyčajne -1), ak je aktuálny spúšťací objekt menší ako odovzdaný jeden a kladné celé číslo (zvyčajne +1), ak je väčšie ako, a 0, ak je rovné. porovnávať metódu by mal vyvolať výnimku, ak má odovzdaný objekt nekompatibilný typ alebo hodnotu null.

Odporúča: