Existen 4 tipos de expresiones Lambda:
Funciones (Function): Recibe como argumento dos parámetros de los cuales el primero <T> corresponde al tipo (objeto) de entrada y el segundo <R> como el tipo de salida de aquella operación.
Ejemplo:
Function<String, Integer> function = s -> s.length() + s.indexOf(" "); // 10 + 4?Integer result = function.apply("Hola mundo"); // Tiene 10 caracteres y el " " se ubica // en la posición 4.
Consumidores (Consumer): Un consumidor es aquella expresión que recibe un parámetro de entrada <T> pero que no retorna o genera ningún valor de salida. Son funciones terminales.
Ejemplo:
Consumer<String> consumer = s -> System.out.println(s.toLowerCase());
consumer.accept("Hola Mundo");
Proveedores (Supplier): Un proveedor es una expresión que no recibe parámetros de entrada pero que retornan o generan un tipo de salida <T>
Supplier<String> supplier = () -> "Hola mundo";
supplier.get();
Salida: "Hola mundo"
Predicados (Predicate): Los predicados son expresiones que aceptan expresiones booleanas, es decir, condiciones lógicas.
Predicate<String> predicate = (str) -> str.length() > 6;
predicate.test("Hola mundo");
Salida: true
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?