palavras.sort(Comparator.comparing(s -> s.length()));
palavras.sort(Comparator.comparing(s -> s.length()));
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!!