Programación

1º DAM/DAW - Curso 2024-2025

User Tools

Site Tools


apuntes:lambdas

This is an old revision of the document!


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: <code java> List<String> cadenas = new ArrayList<>(); </code> === Métodos estáticos === <code java> Utilizando una expresión lambda

cadenas.forEach1) Equivalente utilizando referencia a método cadenas.forEach(System.out::println) </code> === Métodos de instancia === <code java> Suponemos que existe una clase CadenasComparator que implementa Comparator Utilizando una expresión lambda cadenas.sort2) 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); </code> === Constructores === <code java> CadenasComparator::new </code> —- © 2023 Santiago Faci

1)
cadena) → System.out.println(cadena
2)
cadena1, cadena2) → cadenasComparator.compare(cadena1, cadena2
apuntes/lambdas.1685274837.txt.gz · Last modified: 2023/05/28 11:53 by Santiago Faci