Due oggetti saranno sempre uguali quando il loro metodo compareTo() restituisce zero?
Due oggetti saranno sempre uguali quando il loro metodo compareTo() restituisce zero?

Video: Due oggetti saranno sempre uguali quando il loro metodo compareTo() restituisce zero?

Video: Due oggetti saranno sempre uguali quando il loro metodo compareTo() restituisce zero?
Video: How does compareTo method works internally in Java? 2024, Maggio
Anonim

Esso è consigliato che confrontare con soltanto ritorna 0, se una chiamata a è uguale a Su gli stessi oggetti voluto Restituzione vero: confrontare con (e2) == 0 ha lo stesso valore booleano come e1. è uguale a (e2) per ogni e1 ed e2 della classe C. Si noti che null è non un'istanza di alcuna classe, e e.

Inoltre, è possibile che equals() restituisca false anche se il contenuto di due oggetti è lo stesso?

4 risposte. In java il metodo public boolean è uguale a ( Oggetto obj) è ereditato da Oggetto . Tuttavia, l'attuazione del metodo come definito nel Oggetto la classe è quella è uguale a il metodo sarà ritorna se e solo Se il due oggetti a confronto sono i stesso esempio.

Successivamente, la domanda è: perché compareTo() dovrebbe essere coerente con il metodo equals() in Java? Questo perché l'interfaccia della mappa è definita in termini di è uguale a operazione, ma una mappa esegue tutti i confronti chiave utilizzando il suo confrontare con (o confrontare) metodo , quindi due chiavi ritenute pari da questo metodo sono, dal punto di vista della mappa ordinata, pari.

Tenendo questo in considerazione, qual è la differenza tra il metodo == equals () e compareTo ()?

confrontare con : confronta lessicograficamente due stringhe. è uguale a : confronta questa stringa con l'oggetto specificato. confrontare con confronta due stringhe in base ai loro caratteri (allo stesso indice) e restituisce un intero (positivo o negativo) di conseguenza. è uguale a() controlla se due oggetti sono uguali o meno e restituisce un booleano.

Possiamo sovrascrivere il metodo compareTo?

Sostituisci metodo compareTo Dovrebbe restituire un numero intero negativo (di solito -1), se l'oggetto di attivazione corrente è inferiore a quello passato uno e intero positivo (di solito +1) se maggiore di e 0 se uguale. Confronta con metodo dovrebbe generare un'eccezione se l'oggetto passato ha un tipo incompatibile o null.

Consigliato: