Lambda

Tava estudando uma apostila da Caelum e me deparei com a seguinte linha de código:

lista.sort((s1, s2) -> Integer.compare(s1.length(), s2.length()));

O que significa esse operador:

->

Essa flecha é conhecida como Arrow Operator, ao se deparar com ela, você sabe que esta sendo feito uma expressão lambda.

Os parâmetros vem antes da flecha e a expressão (ou corpo do método) vem depois da flecha

Toda interface funcional (isso é, interface que traz apenas um método a ser implementado) pode ser utilizada em conjunto com o operador arrow, ou seja, ->.

Isso é conhecido como expressão lambda.