¿Dos objetos siempre serán iguales cuando su método compareTo () devuelva cero?
¿Dos objetos siempre serán iguales cuando su método compareTo () devuelva cero?

Video: ¿Dos objetos siempre serán iguales cuando su método compareTo () devuelva cero?

Video: ¿Dos objetos siempre serán iguales cuando su método compareTo () devuelva cero?
Video: Curso Java #30 - Comparación de objetos 2024, Diciembre
Anonim

Eso es recomendó que comparar con solamente devoluciones 0, si una llamada a es igual a sobre los mismos objetos haría regreso cierto: comparar con (e2) == 0 tiene el mismo valor booleano como e1. es igual a (e2) para cada e1 y e2 de la clase C. Tenga en cuenta que nulo es no es una instancia de ninguna clase, y e.

Además, ¿es posible que equals () devuelva falso incluso si el contenido de dos objetos es el mismo?

4 respuestas. En java el método public boolean es igual a ( Objeto obj) se hereda del Objeto . Sin embargo, la implementación del método tal como se define en el Objeto clase es que el es igual a el método será volver si y solo si los dos objetos siendo comparados son los mismo ejemplo.

Posteriormente, la pregunta es, ¿por qué compareTo () debería ser consistente con el método equals () en Java? Esto es así porque la interfaz del mapa se define en términos de es igual a operación, pero un mapa realiza todas las comparaciones clave utilizando su comparar con (o comparar) método , por lo que dos claves que se consideran igual por esto método son, desde el punto de vista del mapa ordenado, igual.

Teniendo esto en cuenta, ¿cuál es la diferencia entre el método == equals () y compareTo ()?

comparar con : Compara dos cadenas lexicográficamente. es igual a : Compara esta cadena con el objeto especificado. comparar con compara dos cadenas por sus caracteres (en el mismo índice) y devuelve un número entero (positivo o negativo) en consecuencia. es igual a () comprueba si dos objetos son iguales o no y devuelve un booleano.

¿Podemos anular el método compareTo?

Anular el método compareTo Debería devolver un entero negativo (normalmente -1), si el objeto de activación actual es menor que el pasado uno , y entero positivo (generalmente +1) si es mayor que, y 0 si es igual. CompareTo método debería lanzar una excepción si el objeto pasado tiene un tipo incompatible o nulo.

Recomendado: