Dos objectes sempre seran iguals quan el seu mètode compareTo () retorna zero?
Dos objectes sempre seran iguals quan el seu mètode compareTo () retorna zero?

Vídeo: Dos objectes sempre seran iguals quan el seu mètode compareTo () retorna zero?

Vídeo: Dos objectes sempre seran iguals quan el seu mètode compareTo () retorna zero?
Vídeo: From ANUNNAKI to the BIBLICAL YAHWEH | Tracing the path of the only god. 2024, De novembre
Anonim

Això és recomanat això comparat amb només torna 0, si una trucada a és igual activat els mateixos objectes faria tornar veritat: comparat amb (e2) == 0 té el mateix valor booleà com e1. és igual (e2) per a cada e1 i e2 de la classe C. Tingueu en compte que null és no és una instància de cap classe, i e.

A més, és possible que equals () torni fals encara que els continguts de dos objectes siguin iguals?

4 respostes. En java el mètode public boolean és igual ( Objecte obj) s'hereta del Objecte . No obstant això, la implementació del mètode tal com es defineix a la Objecte classe és que el és igual mètode serà tornar si i només si el dos objectes que es comparen són els mateix instància.

Posteriorment, la pregunta és, per què compareTo () hauria de ser coherent amb el mètode equals () a Java? Això és així perquè la interfície del mapa es defineix en termes de és igual operació, però un mapa realitza totes les comparacions clau utilitzant-lo comparat amb (o comparar) mètode , doncs dues claus que es consideren igual per això mètode són, des del punt de vista del mapa ordenat, igual.

Tenint això a la vista, quina diferència hi ha entre el mètode == equals () i compareTo ()?

comparat amb : Compara lexicogràficament dues cadenes. és igual : compara aquesta cadena amb l'objecte especificat. comparat amb compara dues cadenes pels seus caràcters (al mateix índex) i retorna un nombre enter (positiu o negatiu) en conseqüència. és igual() comprova si dos objectes són iguals o no i retorna un booleà.

Podem anul·lar el mètode compareTo?

Substituïu el mètode compareTo Hauria de retornar un nombre enter negatiu (normalment -1), si l'objecte activador actual és inferior al passat un , i un enter positiu (normalment +1) si és més gran que, i 0 si és igual. mètode compareTo should llança una excepció si l'objecte passat té un tipus incompatible o nul.

Recomanat: