1
resposta

o caracter "s" não foi declarado como variável antes, como foi possível utiliza-lo ? e o Comparator.comparing aceita um function que extrai uma comparable ? não consegui entender ao certo.

palavras.sort(Comparator.comparing(s -> s.length()));

1 resposta

Opa Diego, tudo bem com você?

No caso, o próprio Java declara a variável s por baixo dos panos levando em conta o tipo dos elementos que estão dentro de palavras, tipo uma inferência mesmo.

Em relação à segunda dúvida, o Comparator.comparing realmente aceita receber como parâmetro uma Function que extrai um Comparable dos elementos da coleção. No nosso exemplo, a Function s -> s.length() está extraindo o comprimento (length) de cada string dentro de palavras. Portanto, ao extrairmos esse comprimento (comparable) de cada elemento, usamos o mesmo como referência para fazer a ordenação das palavras.

Não sei se fui claro, mas espero que isso ajude!

Abraços e bons estudos!!