apuntes:lambdas
This is an old revision of the document!
Table of Contents
Interfaces funcionales, lambdas y referencias a métodos
Interfaces funcionales
- Predicate: Evalua una condición booleana
- IntPredicate, LongPredicate, DoublePredicate
- Consumer: Acepta un input como entrada y no devuelve ningún resultado * IntConsumer, LongConsumer, DoubleConsumer * Function: Acepta un input como entrada y devuelve un resultado
- IntFunction, IntToDoubleFunction, IntToLongFunction, LongFunction, LongToDoubleFunction, . . .
- Supplier: No acepta argumentos y devuelve un resultado (al contrario que Consumer)
- BooleanSupplier, IntSupplier, LongSupplier, DoubleSupplier
- BiPredicate: Versión de Predicate para dos argumentos * BiFunction: Versión de Function para dos argumentos
Expresiones lambda
Referencias a métodos
Suponiendo que tenemos una colección de cadenas, veamos unos ejemplos que nos permitan utilizar una referencia a un método:
List<String> cadenas = new ArrayList<>();
Métodos estáticos
// Utilizando una expresión lambda cadenas.forEach((cadena) -> System.out.println(cadena)) // Equivalente utilizando referencia a método cadenas.forEach(System.out::println)
Métodos de instancia
// Suponemos que existe una clase CadenasComparator que implementa Comparator // Utilizando una expresión lambda cadenas.sort((cadena1, cadena2) -> cadenasComparator.compare(cadena1, cadena2)) // Equivalente utilizando una referencia a método suponiendo que existe un objeto de la clase que implementa a CadenasComparator cadenas.sort(cadenasComparator::compare); // Equivalente utilizando una referencia a método cadenas.sort(CadenasComparator::compare);
Constructores
CadenasComparator::new
© 2023 Santiago Faci
apuntes/lambdas.1685274846.txt.gz · Last modified: 2023/05/28 11:54 by Santiago Faci