Er to objekter altid ens, når deres compareTo () metode returnerer nul?
Er to objekter altid ens, når deres compareTo () metode returnerer nul?

Video: Er to objekter altid ens, når deres compareTo () metode returnerer nul?

Video: Er to objekter altid ens, når deres compareTo () metode returnerer nul?
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, November
Anonim

Det er anbefalede det sammenligne med kun vender tilbage 0, hvis et opkald til lige med på de samme genstande ville Vend tilbage sand: sammenligne med (e2) == 0 har det samme boolsk værdi som e1. lige med (e2) for hver e1 og e2 i klasse C. Bemærk, at null er ikke en forekomst af nogen klasse, og f.eks.

Ydermere, er det muligt for equals () at returnere falsk, selvom indholdet af to objekter er det samme?

4 svar. I java metoden public boolean lige med ( Objekt obj) er arvet fra Objekt . Men implementeringen af metoden som defineret i Objekt klasse er, at lige med metode vil returnere hvis og kun hvis det to genstande der sammenlignes er samme eksempel.

Efterfølgende er spørgsmålet, hvorfor compareTo () skal være konsistent med equals () metode i Java? Dette skyldes, at kortgrænsefladen er defineret i forhold til lige med operation, men et kort udfører alle vigtige sammenligninger ved hjælp af sin sammenligne med (eller sammenlign) metode , så to nøgler, der anses for lige med dette metode er fra det sorterede korts synspunkt, lige.

Med dette i betragtning, hvad er forskellen mellem == er lig med () og compareTo () metode?

sammenligne med : Sammenligner to strenge leksikografisk. lige med : Sammenligner denne streng med det angivne objekt. sammenligne med sammenligner to strenge efter deres tegn (ved samme indeks) og returnerer et heltal (positivt eller negativt) i overensstemmelse hermed. lige med() kontrollerer om to objekter er ens eller ej og returnerer en boolean.

Kan vi tilsidesætte compareTo-metoden?

Tilsidesæt CompareTo Method Det bør returnere et negativt heltal (normalt -1), hvis det aktuelle udløsende objekt er mindre end det beståede en , og positivt heltal (normalt +1) hvis større end, og 0 hvis lig. sammenligneTil metode should kaster en undtagelse, hvis det beståede objekt har en inkompatibel type eller null.

Anbefalede: