Dois objetos sempre serão iguais quando seu método compareTo () retornar zero?
Dois objetos sempre serão iguais quando seu método compareTo () retornar zero?

Vídeo: Dois objetos sempre serão iguais quando seu método compareTo () retornar zero?

Vídeo: Dois objetos sempre serão iguais quando seu método compareTo () retornar zero?
Vídeo: Curso de Java - Ordenação de Listas - Comparable e Comparator - Programação Iniciante 2024, Maio
Anonim

Isto é recomendou isso comparado a só retorna 0, se uma chamada para é igual a sobre os mesmos objetos seria Retorna verdade: comparado a (e2) == 0 Tem o mesmo valor booleano como e1. é igual a (e2) para cada e1 e e2 da classe C. Observe que nulo é não é uma instância de qualquer classe, e e.

Além disso, é possível que equals () retorne false mesmo se o conteúdo de dois objetos for o mesmo?

4 respostas. Em java, o método public boolean é igual a ( Objeto obj) é herdado do Objeto . No entanto, a implementação do método conforme definido no Objeto classe é que o é igual a método vai volte se e somente E se a dois objetos sendo comparados são os mesmo instância.

Posteriormente, a questão é: por que compareTo () deve ser consistente com o método equals () em Java? Isso ocorre porque a interface do Mapa é definida em termos de é igual a operação, mas um mapa executa todas as comparações principais usando seu comparado a (ou compare) método , então duas chaves que são consideradas igual por este método são, do ponto de vista do mapa ordenado, igual.

Tendo isso em mente, qual é a diferença entre os métodos == equals () e compareTo ()?

comparado a : Compara duas strings lexicograficamente. é igual a : Compara esta string com o objeto especificado. comparado a compara duas strings por seus caracteres (no mesmo índice) e retorna um inteiro (positivo ou negativo) de acordo. é igual a() verifica se dois objetos são iguais ou não e retorna um booleano.

Podemos substituir o método compareTo?

Substituir método compareTo Deve retornar um número inteiro negativo (geralmente -1), se o objeto de acionamento atual for menor que o passado 1 e inteiro positivo (geralmente +1) se maior que e 0 se igual. método compareTo deve lançar uma exceção se o objeto passado tiver tipo incompatível ou nulo.

Recomendado: