Rodei o código do enunciado e o resultado foi a ordenação pelo tamanho e não pelo conteudo dos strings.
Rodei o código do enunciado e o resultado foi a ordenação pelo tamanho e não pelo conteudo dos strings.
Olá Maurício, tudo bem com você?
Isso mesmo. No exemplo usado no exercício, usamos o método length()
da classe String para pegarmos o tamanho das Strings que adicionamos na lista de nomes:
@Override
public int compare(String s1, String s2) {
return s1.length() - s2.length();
Caso você queira comparar pelo conteúdo, talvez faça mais sentido usar o método compareTo da classe String. Dessa forma, só precisamos fazer uma pequena alteração no método compare()
. Então, ao invés de s1.length() - s2.length()
, ficaria assim:
@Override
public int compare(String s1, String s2) {
return s1.compareTo(s2);
Ou, usando expressões lambda, você pode substituir tudo por:
nomes.sort((s1, s2) -> s1.compareTo(s2));
Testa aí e depois me avisa se funcionou! ;)