string - O que é o sort do Java? - Stack Overflow em Português
O que é o sort do Java?
Todo programador saber que uma lista de arrays são impressas de forma ordenada, porém no meio do caminho tem sort().
O resultado da impressão foi essa:
Eu imaginava que fosse imprimir dessa forma:
Eu não sei como o sort() se comporta, mas pelo que estou vendo ele imprime seguindo a ordem alfabética quando se trata de strings?
List<String> fruits = Arrays.asList("Banana", "Laranja", "Manga", "Abacaxi");
Collections.sort(fruits);
java string lista classificação
editada 15/10/18 às 16:21
perguntada 14/10/18 às 11:54
Explique porque você acha que deveria ser esse resultado, não faz o menor sentido o que você está perguntando. Você quer saber o que a função sort() faz? É isso? Se for, não poderia perguntar de forma mais simples? – Maniero♦ 14/10/18 às 11:57
@Maniero eu só queria saber porque ele imprimiu assim Abacaxi Banana Laranja Manga invés de assim Banana Laranja Manga Abacaxi . de fato eu não sei como o ´sort´ se comporta. – wladyband 14/10/18 às 12:10
A função sort() classifica listas de dados. Na sua forma mais simples usa uma ordem crescente. Se os dados são textos é claro que a ordem é alfabética.
Toda lista tem alguma ordem, pode ser uma ordem natural ou pode ser uma ordem adaptada. A função sort() muda a ordem classificando cada elemento pela ordem alfabética.
É óbvio que se você aplica uma função a uma lista é provável que essa lista seja modificada de alguma forma. Não faria sentido usar a função e esperar que tudo fique igual.
Então após a chamada desta função, que pode ser bem demorada se a lista for muito grande, a lista terá uma nova ordem "definitiva". Claro que a lista não manterá sempre tudo em ordem alfabética se for manipulando os dados, a estrutura da lista não é naturalmente classificada, então futuras manipulações não serão classificadas, se precisar da classificação terá que executar sort() novamente. Se precisa sempre fazer isso é melhor usar outro tipo de estrutura que seja automaticamente classificada, que não é o caso do ArrayList.
Documentação da função sort().
Veja mais em Qual a diferença entre ordered, unordered e sorted?.
editada 11/08/20 às 14:22
respondida 14/10/18 às 12:20
Julgo que está a confundir os termos "ordered" e "sorted".
O Array representa um conjunto de elementos com uma determinada ordem(ordered) mas não necessariamente ordenada/classificada(sorted) pelo menos, neste caso, por ordem alfabética.
Ele é "ordered" porque os itens mantêm uma ordem/sequência que advém da sua posição(indice) no array.
editada 17/10/18 às 12:53
respondida 14/10/18 às 12:19
Esta não é a resposta que você está procurando? Pesquise outras perguntas com a tag java string lista classificação ou faça sua própria pergunta.