Olá pessoal, boa tarde.
Por gentileza, como este método consegue ordenar apenas usando 1, -1 e 0?
O que ocorre por trás?
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.