Programación funcional en Java 8 con Lambdas y Streams

Aprende a utilizar los recursos de la programación funcional con Java 8.
4.6 (17 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
72 students enrolled
$19
$25
24% off
Take This Course
  • Lectures 22
  • Length 2 hours
  • Skill Level All Levels
  • Languages Spanish
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 3/2016 Spanish

Course Description

Este curso introduce las novedades de Java 8, principalmente las nuevas interfaces funcionales y las lambda expression.

El curso está compuesto de lecciones cortas y centradas en un tema concreto. ¡Ya es bastante complejo asimilar todas las novedades de Java 8 como para aprender cinco cosas al mismo tiempo!

Cada tema, pues, introducirá un nuevo concepto, usando lo aprendido anteriormente y ofreciendo ejercicios para asimilar el contenido.

Y hablando de ejercicios .... Por favor, ¡hazlos!

Los ejercicios son muy prácticos: importa el proyecto en el Eclipse y el mismo editor te indicará cuando los has realizado correctamente o no. ¡Imposible más comodidad!

Recuerda: La teoría sirve para poder hacer los ejercicios. Solo en la práctica es cuando se produce el nuevo conocimiento.

Así pues: empieza con los videos y después de cada tema, súbete las mangas y ¡empieza a trabajar con las lambda expressions!

Recuerda:

  1. Con la compra, tienes 30 días para probar el curso. Si no cumple tus expectativas puedes cancelarlo sin dar ninguna explicación. Se devuelve el 100% del importe.
  2. El pago incluye el acceso a todas las lecciones de por vida. También a actualizaciones que se vayan realizando

What are the requirements?

  • Es necesario disponer del IDE Eclipse
  • JDK en la version 1.8

What am I going to get from this course?

  • Utilizar lambda expressions para mejorar la expresividad del código.
  • Escribir código más compacto y reusable con los Stream y las nuevas interfaces funcionales
  • Construir interfaces que ofrezcan una API más práctica con los métodos default y static
  • Aprovechar las novedades introducidas en las API de Collection, Comparator y otros

What is the target audience?

  • Programadores familiarizados con el lenguaje Java en una versión anterior a Java 8.
  • NO es un curso de introducción a Java. Si buscas un curso para aprender desde 0 el lenguaje, este curso NO es para ti.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Article

¡Lee con atención el contenido de esta lección! Se explica como realizar los ejercicios que irás encontrando a lo largo del curso.

06:36

¿Que añade Java 8 para hablar del mayor cambio introducido nunca en Java?

¡Veamos un pequeño aperitivo de lo que será el resto del curso!

06:04

En esta lección mostramos en vídeo como trabajar con los problemas propuestos en el curso.

Section 1: Interfaces
06:09

Los default methods son un añadido a las interfaces que darán soporte a muchas de las novedades de Java 8.

Ahora, es posible que las interfaces incluyan métodos con implementación. En esta lección apuntaremos a las posibilidades que esto ofrece, pero durante el curso iréis viendo muchos más ejemplos de su potencial.

02:18

Otra opción para añadir código en las interfaces, a parte de los default methods, son los métodos estáticos.

Quizás sea un "hermano pequeño" del cambio presentado en la lección anterior, pero no por ello hay que restar importancia al potencial de los static methods en las interfaces.

04:17

Y llega el último gran cambio en las interfaces que "prepara el terreno" para las lambda expression.

Desde siempre, las interfaces con un solo método han tenido una especial importancia en nuestros diseños. Llega ahora el momento de formalizar este "protagonismo" bautizándolas como "Functional Interfaces".

5 questions

Repaso de la sección: Interfaces

Section 2: Lambdas
04:32

Los programadores de Java siempre nos hemos preocupado por los tipos de nuestras variables. ¿Que tipo tienen estos recién llegados "lambda expressions"?

Veámoslo en esta lección

03:57

En esta lección profundizaremos en la forma que tienen las lambda expression. Que variantes hay, de que depende su aspecto y que opciones tenemos.

Solución ejercicio lambda expression
07:04
Repaso sección
4 questions
Section 3: Functional interfaces
06:32

Ahora que ya sabemos que es una "functional interface" veremos que catálogo de funciones nos ofrece el JDK.

Hay muchas, pero no os preocupéis: entendiendo algunas reglas básicas sabremos cual escoger según nuestras necesidades.

06:10

Una alternativa al uso de las lambda expressions es utilizar directamente métodos ya existentes.

En esta lección veremos como referenciar a distintos tipos de métodos para proporcionar nuestras implementaciones de interfaces funcionales.

10:09

¿Te imaginas programar sin null y sin NullPointerExceptions?

Ahora es posible: bienvenido a Optional

Repaso sección
4 questions
Section 4: Streams
04:04

Los streams permiten definir "flujos de trabajo" sobre agrupaciones de datos.

Son los nuevos complementos a las Collection para trabajar de forma "funcional". En esta lección realizamos una primera aproximación a ellos.

06:36

Las operaciones en un stream se organizan en forma de secuencia o cadena. Es el llamado "stream pipeline".

En esta lección veremos las partes de este "pipeline" y los principales tipos de operaciones.

04:18

¿En que orden se ejecutan las operaciones de un pipeline?

Puede parecer una pregunta trivial pero no lo es. En esta lección veremos como es este orden y, más importante, ¡como evitar errores por no conocerlo!

02:57

Aunque las operaciones de reduce explicadas en la lección anterior sean muy potentes, no siempre son la mejor opción.

En esta lección veremos que problemas de rendimiento pueden presentar y ofreceremos una alternativa para solucionarlo.

08:01

Siguiendo con la idea de la lección anterior: a veces una estructura "mutable" es la más adecuada para ir construyendo el resultado.

En esta lección veremos que posibilidades nos ofrece el JDK para las operaciones más habituales sobre los streams.

05:04

¿Es posible realizar las operaciones de un stream de forma paralela? La respuesta es un sí, pero ....

En esta lección veremos como indicar a un stream que su ejecución sea paralela y que limitaciones presenta.

Repaso sección
6 questions
Section 5: Adaptaciones del API
07:31

Dejamos los streams y vamos a otras aportaciones hechas en Java 8.

Basándonos en lo explicado en las lecciones anteriores, veamos la "revolución" que ha sufrido el framework de Collections.

04:25

Otro gran beneficiado de los cambios de Java 8 ha sido Comparator.

Veamos como este veterano ha rejuvenecido en la nueva versión.

Repaso sección
3 questions
Section 6: Conclusiones
02:14

En este punto ya hay poco que decir:

Enhorabuena por tu esfuerzo, suerte en el uso de Java 8 y ¡muchas gracias!

Section 7: Extras
Clase extra: Otros cursos
Article

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Domingo Sebastian, Software Engineer & Trainer

Ingeniero en Informática por la Universitat de les Illes Balears (UIB) y programador certificado en Java.

Llevo desde 1998 trabajando de analista y programador en distintas organizaciones. Empecé trabajando en aplicaciones Oracle con PL/SQL, pero me enganché al Java cuando aún estaba por las versiones 1.1. A partir de aquel momento, he ido trabajando en el interesantísimo ecosistema que se ha ido creando en torno al lenguaje y su máquina virtual.

Tengo más de 10 años de experiencia en formación de Java, JEE, bases de datos, servidores de aplicaciones y herramientas de desarrollo.

Ready to start learning?
Take This Course