Function ao inves de lambda

package market;

 

import java.util.ArrayList;

import java.util.Comparator;

import java.util.List;

import java.util.function.Function;

 

public class Oitinho {

 

 public static void main(String[] args) {

 

         List<String> palavras = new ArrayList<String>();

         palavras.add("Flavio Jr");

         palavras.add("Junior Market");

         palavras.add("Monster");

 

         // ---------------------------------- com lambda

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

         System.out.println(palavras);

 

         // ---------------------------------- sem lambda, usando funcion (java 8)

         Function<String, Integer> funcao = new Function<String, Integer>() {

 

                 @Override

                 public Integer apply(String s) {

                         return s.length();

                 }

         };

 

         Comparator<String> comparador = Comparator.comparing(funcao);

         palavras.sort(comparador);

         System.out.println(palavras);

 }

}