Ali bosta dva predmeta vedno enaka, ko njihova metoda compareTo () vrne nič?
Ali bosta dva predmeta vedno enaka, ko njihova metoda compareTo () vrne nič?

Video: Ali bosta dva predmeta vedno enaka, ko njihova metoda compareTo () vrne nič?

Video: Ali bosta dva predmeta vedno enaka, ko njihova metoda compareTo () vrne nič?
Video: Полный курс Redux Toolkit + RTK Query для начинающих | Редакс за 2 часа! 2024, Maj
Anonim

To je priporočal to primerjaj z samo vrne 0, če je klic na enaka na isti predmeti bi vrnitev prav: primerjaj z (e2) == 0 ima enako logična vrednost kot e1. enaka (e2) za vsako e1 in e2 razreda C. Upoštevajte, da je nič je ni primerka katerega koli razreda in e.

Poleg tega, ali je mogoče, da enak () vrne false, tudi če sta vsebina dveh predmetov enaka?

4 odgovori. V Javi metoda public boolean enaka ( Predmet obj) je podedovano od Predmet . Vendar pa izvajanje metode, kot je opredeljeno v Predmet razred je to enaka metoda bo vrni, če in samo če the dva predmeta se primerjajo enako primer.

Nato se postavlja vprašanje, zakaj bi moral biti compareTo () skladen z metodo equals () v Javi? To je zato, ker je vmesnik zemljevida opredeljen v smislu enaka operacijo, vendar zemljevid izvede vse ključne primerjave s svojim primerjaj z (ali primerjaj) metoda , torej dva ključa, ki se štejeta enako s tem metoda so z vidika razvrščenega zemljevida, enako.

Če upoštevamo to, kakšna je razlika med metodo == enako () in compareTo ()?

primerjaj z : primerja dva niza leksikografsko. enaka : primerja ta niz z navedenim predmetom. primerjaj z primerja dva niza po njihovih znakih (v istem indeksu) in temu ustrezno vrne celo število (pozitivno ali negativno). enako () preveri, ali sta dva predmeta enaka ali ne, in vrne logično vrednost.

Ali lahko preglasimo metodo compareTo?

Preglasi metodo compareTo Vrniti mora negativno celo število (običajno -1), če je trenutni sprožilni objekt manjši od posredovanega eno in pozitivno celo število (običajno +1), če je večje od, in 0, če je enako. CompareTo metoda should vrže izjemo, če ima posredovani predmet nezdružljiv tip ali nič.

Priporočena: