Kas kaks objekti on alati võrdsed, kui nende võrdlemise meetod () tagastab nulli?
Kas kaks objekti on alati võrdsed, kui nende võrdlemise meetod () tagastab nulli?

Video: Kas kaks objekti on alati võrdsed, kui nende võrdlemise meetod () tagastab nulli?

Video: Kas kaks objekti on alati võrdsed, kui nende võrdlemise meetod () tagastab nulli?
Video: Täielik reageerimispäringu kursus tunniga | TanStack Query v4 algajatele 2024, Aprill
Anonim

See on soovitas seda võrdlema ainult naaseb 0, kui helistate võrdub peal samad objektid oleks tagasi tõsi: võrdlema (e2) == 0 on sama tõeväärtus kui e1. võrdub (e2) iga klassi C e1 ja e2 jaoks. Pange tähele, et null on mitte ühegi klassi eksemplar ja e.

Veelgi enam, kas võrdsetel () on võimalik tagastada vale, isegi kui kahe objekti sisu on sama?

4 vastust. Javas on meetod avalik tõeväärtus võrdub ( Objekt obj) on päritud Objekt . Kuid meetodi rakendamine, nagu on määratletud Objekt klass on see võrdub meetod tahe tagasi, kui ja ainult kui a kaks objekti võrreldavad on sama näiteks.

Seejärel tekib küsimus, miks peaks võrdlusTo () olema Javas võrdne meetodiga võrdub ()? Selle põhjuseks on asjaolu, et kaardi liides on defineeritud vastavalt võrdub toimingut, kuid kaart teostab kõik peamised võrdlused selle abil võrdlema (või võrdle) meetod , seega loetakse kaks võtit võrdne selle järgi meetod on sorteeritud kaardi seisukohast võrdne.

Seda silmas pidades, mis vahe on == võrdub () ja VõrdleTo () meetodil?

võrdlema : Võrdleb kahte stringi leksikograafiliselt. võrdub : võrdleb seda stringi määratud objektiga. võrdlema võrdleb kahte stringi nende märkide järgi (sama indeksiga) ja tagastab vastavalt täisarvu (positiivne või negatiivne). võrdub () kontrollib, kas kaks objekti on samad või mitte, ja tagastab tõeväärtuse.

Kas saame võrdlusmeetodi alistada?

Alista võrdlusmeetodiga See peaks tagastama negatiivse täisarvu (tavaliselt -1), kui praegune käivitav objekt on väiksem kui läbitud objekt üks , ja positiivne täisarv (tavaliselt +1), kui see on suurem, ja 0, kui see on võrdne. võrdle meetodiga peaks tegema erandi, kui läbitud objektil on ühildumatu tüüp või null.

Soovitan: