Sal twee voorwerpe altyd gelyk wees wanneer hul vergelyk met () metode nul gee?
Sal twee voorwerpe altyd gelyk wees wanneer hul vergelyk met () metode nul gee?

Video: Sal twee voorwerpe altyd gelyk wees wanneer hul vergelyk met () metode nul gee?

Video: Sal twee voorwerpe altyd gelyk wees wanneer hul vergelyk met () metode nul gee?
Video: Gregory Chaitin: Complexity, Metabiology, Gödel, Cold Fusion 2024, April
Anonim

Dit is aanbeveel dat vergelyk Met enigste opbrengste 0, as 'n oproep na gelyk is aan dieselfde voorwerpe sou terugkeer waar: vergelyk Met (e2) == 0 het dieselfde Boolese waarde as e1. gelyk is (e2) vir elke e1 en e2 van klas C. Let daarop dat nul is nie 'n geval van enige klas nie, en e.

Verder, is dit moontlik vir gelykes () om vals terug te gee, selfs al is die inhoud van twee voorwerpe dieselfde?

4 Antwoorde. In java die metode openbare boolean gelyk is ( Voorwerp obj) word geërf van die Voorwerp . Die implementering van die metode soos omskryf in die Voorwerp klas is dat die gelyk is metode sal terug as en slegs as die twee voorwerpe vergelyk word, is die dieselfde instansie.

Die vraag is dan hoekom compareTo () konsekwent moet wees met gelyke () metode in Java? Dit is so omdat die Kaart-koppelvlak gedefinieer word in terme van die gelyk is operasie, maar 'n kaart voer alle sleutelvergelykings uit deur sy vergelyk Met (of vergelyk) metode , dus twee sleutels wat geag word gelyk hierdeur metode is, vanuit die oogpunt van die gesorteerde kaart, gelyk.

As u dit in die oog hou, wat is die verskil tussen == gelyk aan () en vergelyk met () metode?

vergelyk Met : Vergelyk twee stringe leksikografies. gelyk is : Vergelyk hierdie string met die gespesifiseerde voorwerp. vergelyk Met vergelyk twee stringe volgens hul karakters (teen dieselfde indeks) en gee dienooreenkomstig 'n heelgetal (positief of negatief) terug. gelyk aan () kontroleer of twee voorwerpe dieselfde is of nie en gee 'n boolean terug.

Kan ons compareTo-metode ignoreer?

Ignoreer vergelyk met metode Dit moet 'n negatiewe heelgetal (gewoonlik -1) terugstuur as die huidige snellervoorwerp minder is as die geslaagde een , en positiewe heelgetal (gewoonlik +1) indien groter as, en 0 indien gelyk. vergelyk Met metode should gooi 'n uitsondering as die geslaagde voorwerp 'n onversoenbare tipe of nul het.

Aanbeveel: