Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Outra maneira de comparar com Lambda

Em vez de usar o Integer.compare, fiz o sort assim:

palavras.sort((s1, s2) -> s1.length() - s2.length());

Assim, vai retornar um número positivo se s1 for maior, negativo se o s2 for maior e zero se for igual.

Nesse caso, aqui deu certo, mas fiquei na dúvida se seria tão confiável quanto o Integer.compare, visto que é um método específico para esse tipo de comparação, seria melhor usá-lo?

2 respostas
solução!

Implementação do método compare em Integer.java

public static int compare(int x, int y) {
        return (x < y) ? -1 : ((x == y) ? 0 : 1);
    }

Na prática o resultado vai ser o mesmo, a lógica que você fez é parecida com a do método, mas sempre é melhor usar os métodos que existem nesses casos :)

Opa, Otávio, melhor usar o que já existe mesmo! Inclusive, na aula seguinte, foi mostrado o Compare.comparing, também, que melhorou mais ainda nessa questão. Valeu!