Olá pessoal, boa tarde.
Por gentileza, como este método consegue ordenar apenas usando 1, -1 e 0?
O que ocorre por trás?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá pessoal, boa tarde.
Por gentileza, como este método consegue ordenar apenas usando 1, -1 e 0?
O que ocorre por trás?
Oi Ian!
Quem chama esse método compare é o próprio Java, por baixo dos panos, para comparar os elementos de uma lista e fazer a ordenação.
Ele basicamente vai percorrer a lista e chamar esse método passando dois elementos por vez, para saber qual dos dois vem primeiro. Mas como ele vai saber qual dos dois vem primeiro para trocar a ordem? Ele usa o retorno desse método compare, que é um número inteiro, seguindo a seguinte lógica:
Seria algo mais ou menos assim:
int resultado = lista.get(0).compare(lista.get(1));
if (resultado == 0) {
// primeiro e segundo elementos sao equivalentes e por isso nao precisa trocar a ordem
} else if (resultado < 0) {
// primeiro elemento deve vir antes do segundo
//nao faz nada pois o primeiro elemento ja esta antes do segundo
} else {
// primeiro elemento deve vir depois do segundo
// troca a posicao do primeiro elemento com a do segundo
}Claro, isso percorrendo cada elemento da lista e comparando um com o outro, até que a lista inteira esteja ordenada.