expresiones lambda en java 8

Ejemplos prácticos de Expresiones Lambda en Java 8

Hola que tal, en un tutorial anterior habíamos visto cuales son los Entendiendo las Expresiones Lambda paso a paso, esta vez vamos hacerlo un poco más práctico, haciendo ejemplos prácticos de expresiones Lambda en Java 8.

En este tutorial combinaremos el API Stream que junto con las expresiones Lambda forman una combinación extremadamente poderosa como se menciona en el artículo Processing Data with Java SE 8 Streams.

Antes de empezar vale la pena recordar la sintaxis de las expresiones Lambda.

Las expresiones Lambda están compuestas de la siguiente manera:

  1. Los parámetros o argumentos que pueden ir o no dentro de paréntesis, esto depende de cuantos existan, si hay más de uno, deben ir obligatoriamente dentro de paréntesis y separados por comas.
  2. Una flecha a la derecha ->.
  3. El cuerpo que puede ser una expresión y que va dentro de llaves si existe más de una sentencia.

De forma general una expresión lambda se puede definir de la siguiente manera:.

Para realizar los ejemplos sería bueno que leas la entrada Entendiendo las Expresiones Lambda paso a paso, para evitar confusiones.

API Stream

A través del API Stream podemos trabajar sobre colecciones como si estuviéramos realizando sentencias SQL pero de una manera limpia y clara, evitando bucles y algoritmos que ralentizan los programas e incluso hacen que el código se torne inmanejable.

Partes que componen un Stream

Existen 3 partes que componen un Stream que de manera general serían:

  1. Un Stream funciona a partir de una lista o colección, que también se la conoce como la fuente de donde obtienen información.
  2. Operaciones intermedias como por ejemplo el método filter, que permite hacer una selección a partir de un predicado.
  3. Operaciones terminales, como por ejemplo los métodos max, min, forEach, findFirst etc.

De manera que la sintaxis puede quedar de la siguiente manera:

Para el ejemplo vamos a crear una clase Alumno.java, que va permitir guardar un alumno con sus nombres, apellidos, curso que tomó, nota del curso, etc.

Ahora en la clase DemoLambda.java creamos una lista de tipo Alumno, sobre está lista realizaremos varias consultas tipo SQL que se suele realizar comúnmente, por ejemplo obtener el estudiante con mayor nota, o el que tomó el curso de Java, entre otro tipo de consultas. Para esto escribimos el código siguiente:

En el primer ejemplo vamos a obtener todos los alumnos de la lista:

Lo podemos hacer de dos formas,  la primera simplemente utilizando foreach a partir del stream y en el segundo caso además del método foreach utilizando el método filter con el predicado a->true.

A continuación vamos a imprimir todos aquellos alumnos cuyo nombre empieza con el caracter ‘L’ o ‘G’, esto se valida utilizando una operación intermedia con filter.

Con el método count() que vendría siendo una operación terminal (mencionada anteriormente) y con la que devolvemos la longitud de la lista:

Obtener los alumnos con notas mayores a 9 y que el curso sea PHP:

Imprimir los 2 alumnos de la lista con el método limit(numero_elementos):

Obtener el alumno que tiene la menor edad:

Obtener el alumno que tiene la mayor edad:

Obtener el primer alumno de la lista con el método findFirst():

Obtener los alumnos cuyos nombres de curso termine con el caracter ‘t’:

Obtener los alumnos cuyos nombres de curso contengan el caracter ‘a’:

Obtener los alumnos cuya longitud de nombres sea mayor a 10:

Obtener los alumnos, cuyo nombre empiece con el caracter ‘P’ y la la longitud de su nombre sea <= a 6:

Hasta ahora hemos mostrado por consola todas las consultas realizadas, pues bien si queremos asignar dicha consulta a una nueva lista debemos hacer lo siguiente:

Estos son algunos de todos los ejemplos que se puede encontrar utilizando las Expresiones Lambda y el API Stream, existen más métodos con los cuáles se puede hacer cosas más complejas y que espero abordarlos en otro entrada.

Espero que hayas aprendido algunos de los métodos donde se utilizan las expresiones lambda y el API Stream. Nos vemos en la próxima entrada.

Opt In Image
Programación Web Full Stack
Suscríbete ahora y recibe los mejores contenidos sobre Programación Web en tu correo.

Tus datos estarán protegidos y 100% libre de Spam

Full Stack Developer, JavaScript, PHP, Java, Spring, Laravel, Vuejs, Blogger, aprendiendo y compartiendo conocimientos. Cursos de Programación Web en: https://programacionfullstack.com/

Artículos Recomendados

Dejar un Comentario