Lambdas udemy Flashcards
Cuales son las caracteristicas de una lambda
Solo pueden tener un metodo abstracto
Se marcan con @FunctionalInterface, esto es opcional pero si se marcan debe de cumplir la condicion de un solo metodo abstracto
Pueden tener varios metodos default
Metodos de heredados de la clase object no son tomados en cuenta para su restriccion de un solo metodo abstracto=
Para que sirve un consumer
Un consumer es una funcion lambda que nos permite aceptar un parametro y no regresar nada, esto nos sirtve por ejemplo para casos en donde queremos imprimir algo por ejemplo, podemos reutilizarlos por medio de andThen concatenar multiples consumers
Describe la diferencia entre modo imperativo y funcional
Imperativo es como si tuvieramos a un jefe que nos estuviera presionando en como hacer las cosas, en cambio una manera funcional se refiere a que el jefe nos va a dejar hacer nuestro trabajo y no le importa el como, una de las caracteristicas de este approach es que es inmutable y en el caso del imperativo es mutable ya que por ejemplo en un for iteramos algo y lo podemos mutar mientras iteramos, en el funcional no se puede
Cual es la diferencia entre una clase anonima y una lambda
Una clase anonima esta ligada a una clase, no se puede reutilizar, tiene mucho codigo boler plate y es la forma en como podiamos implementar interfaces funcionales en java 7 para abajo, una lambda nos da la posibilidad de reusabilidad, implementa el modo funcional en el cual no sabemos el como pero confiamos en que lo hace, implementa a @FunctionalInterface y en algunas ocaciones es mas leible
Como se utiliza el metodo reduce en stream
Se utiliza utilizando dos parametros por ejemplo, le pasamos 1 y una funcion binaria, el uno es conocido como identidad y es el resultado de la operacion anterior o si es la primera operacion es el primer valor que se le colocara al primer argumento de la funcion binaria
Para que sirve un Supplier
El supplier es lo contrario a un consumer, en este caso no vamos a recibir ningun parametro pero vamos a devolver el tipo definido en el generico del supplier
Supplier> students = () -> returnDB.getStudents():
Para que sirve una funcion
Una funcion permite enviarle un tipo y que nos regrese otro tipo diferente, por ejemplo
Function longitudCadena = (palabra) -> palabra.lenght
En este caso le pasamos una cadena y nos regresa un numero que es la longitud de dicha cadena
Cual es la diferencia entre una BiFunction y una Function
La bifunction nos permite especificarle dos parametros de entrada y un parametro de salida y la funcion solo nos permite un dato de entrada y otro de salida
Que es un predicado
Un predicado nos sirve para pasar una condicion que resulte en verdadero o falso, por ejemplo
Si quisieramos evaluar los estudiantes que son mayores de edad
Predicate mayoresDeEdad = (student) -> student.getAge() >= 18:
Cual es la diferencia entre un predicado y un bi predicado
Un predicado recibe un parametro y regresa true o false y un bipredicado recibe dos parametros y regresa true o false
Cual es la diferencia entre un biconsumer y un consumer
La diferencia es que el consumer solo recibe un parametro y el biconsumer recibe dos parametros, en ambos casos no regresa nada
Que es lo que hace el metodo map de stream
Map va a hacer una correlacion entre una estructura de un tipo a otra o posiblemente a la misma, pero con una estructura nueva, la condicion en un mapeo es que si la lista original tiene 10, despues del mapero deberia de tener 10, por ejemplo digamos que tenemos una lista de estuduantes con nombre, edad y oficio, con 10 estudiantes y querenos representarla como un mapa que sea nombre: oficio, en ese caso resultara en un mapa de 10 elementos(tomando en cuenta que el nombre es diferente)
Cual es la diferencia entre un unaryOperator y una funcion
Es lo mismo, siempre y cuando reciba y regrese el mismo tipo, por ejemplo una funcion
Function printHelloWorld = (name) -> return “Hello World “ + name;
Es lo mismo que
UniaryOperatorprintHelloWorld = (name) -> return “Hello World “ + name;
Ya que recibe string y regresa string, por lo cual si son del mismo tipo podemos acortar la firma con el operador unario
Cual es la diferencua entre un operador binario y una bifunction
La funcion binaria recibe dos parametros del mismo tipo y regresa tambien el mismo tipo
BiFunction
es igual que
BinaryOperator
Que hace flat map
Un flat map lo que va a hacer es que si tienes una lista de listas, esas listas las hara una sola lista Ejemploi listaA = 1,2,3 listaB = 4,5,6 una flat lista seria asi flatMap = 1,2,3,4,5,6