Continuemos este momento solamente hemos trabajado con el flujo, con el foreach, vemos los datos que
contiene, pero todavía no hemos manipulado, no hemos modificado nada.
Bueno, eso lo podemos implementar con los operadores intermedio, por ejemplo con el operador map,
con el filter y otro más que vamos a ver en esta clase, vamos a ver el map.
Lidié modificar este flujo como por ejemplo convertir en mayúscula, convertir a minúscula los nombres
o bien convertir este flujo del tipo string a otro tipo dato, por ejemplo a un tipo usuario que contenga
nombre, apellido, poder transformar.
Pero recuerden que inmutable.
Por lo tanto, cualquier transformación qoie que invocamos un operador, lo que hace retornar una nueva
instancia de un stream con los cambios con el nuevo flujo y el anterior lo mantiene intacto.
Por lo tanto, podríamos regresar en cualquier momento al estado anterior, al estado original que tenía
antes.
Bien, vamos a cerrar.
Vamos a copiar.
Acá y lo pegamos.
Ejemplos Trim Mato Operador Map.
Perfecto.
Vamos a quedarnos solamente con todo acá.
Todo lo demás lo vamos a ahorrar.
Esto también lo comentamos bien.
Y esto lo hemos comentado.
Importamos.
Lo primero es el MAP, un operador que podemos llamar y a diferencia del foreach, que es una persona
Lanta Consumer.
Por lo tanto se emite cada elemento y podemos trabajar acá.
Es parecido, pero es un functiont.
Por lo tanto se emite cada elemento, pero retorna este elemento modificado.
Es decir, transforma el flujo.
Acá tenemos los nombres.
Acá se emite el nombre por cada elemento.
Y acá una expresión lanta del tipo funciona bien.
Acá voy a bajar.
Siempre rotonda, rotonda, nombre o lo que sea, en este caso voy a colocar mayúscula.
Lo vamos a convertir en tu aparques, estemos realizando alguna transformación.
Bueno, recuerde que esto se puede simplificar y todo lo demás solamente colocando las llaves, el ratón,
para que quede visualmente explícito que el MAP siempre devuelve un resultado o el dato cambiado.
Ahora, si ejecutamos, no pasa nada.
Recuerden que no se ejecuta flujo hasta que invoquemos algún método final.
Por ejemplo, el forillo.
Pato, Paco, Pepa y Pepe.
Todo mayúscula.
Ahora el foreach reto en un Veidt.
Eso lo vimos.
Por lo tanto, no podríamos hacer esto marcaría un error.
Por qué?
Como retornÃ, voy.
Y acá estamos asignando un boy a un tipo string del tipo String.
Se fijan?
No puedo.
No es compatible asignar un bait a este tipo dato.
Entonces por eso el foreach, como es final o terminal, se invoca sobre el string.
Lo que sí se podría hacer es quitar esto.
Solamente lo voy a cortar y lo dejamos de esa forma.
Después voy a regresar atrás, pero solamente para que lo vean.
En este caso, como no se asigna ningún valor a ninguna variable, simplemente coloco el foreach, lo
invoco para hacer algo con el flujo.
Sin asignar a ninguna Arial, pero ya cuando asignamos tal como lo teníamos.
Terminamos y acá con nombres, punto, forillo.
Voy a bajar acá.
Y también tenemos otros operadores.
Por ejemplo, el pick, el pick tiene fondos para inspeccionar, para mirar, solamente para debug realizar
como un rastreo de los elementos apareció el foreach.
Ya, pero solamente se ejecuta como un operador intermedio.
No es final.
Es para ver cómo están quedando nuestros datos.
También es un Consumer y Wake Forest.
Entonces acá se emite el elemento por cada uno elemento.
Acá no devuelve nada.
No hay un ratón shout e.
Para qué a pasar como estamos gestionando ante del MAP acaba mostrar en minúscula.
Luego se transforma y el foreach muestra mayuscula.
Veamos.
Pato minuscula del pic y pato del Foret, Paco minuscula y así por CA1, entonces por cada elemento
primero se inspeccionÃ, después se le aplica la transformación y después se recorre.
Pero recuerden que el foreach es el que gatilla la invocación de estos operadores.
Si no tenemos el foreach como un operador terminal, no pasa nada.
Simplemente ni siquiera sabe ejecutar el PIC ni tampoco el MAP, siempre a través de un operador terminar.
Después vamos a hacer otro más, por ejemplo, para convertir un stream a una lista.
Incluso podremos cambiar el orden.
Por ejemplo, acá tenemos el map al final.
Qué pasa si lo cortamos?
Lo voy a cortar.
Y lo dejamos acá.
Bueno, el русский va a mostrar los datos en mayúscula, igual que el forillo.
Más tar.
Siempre mayúscula.
Pato, Pato, Pacos, incluso pudieron tener más operadores del tipo mapa.
Voy a bajar o acá mismo punto map el elemento, la flecha y lo vamos a modificar.
Ahora la convertimos a minúscula elemento punto.
Que es tú lo workers.
Veamos el resultado.
Pato, desde el primer pic acá se convierte a mayúscula.
Entonces después Paco a mayúscula, pero después el MAPP lo convierte nuevamente a minúscula, vuelve
a transformar el flujo y el foreach.
Finalmente muestro los datos en minúscula.
Ven, ahora vamos a optimizar un poco más.
Por ejemplo, voy a quitar el ratón, las llaves acá también.
Y como son invocaciones de método, bueno, simplemente con.
El estric 2.2.2 tuvo parqués quitamos esto.
Se simplifica bastante utilizando método de referencia.
Mismo resultado?
Bien.
Ahora, qué pasa si quisiera convertir este flujo del tipo stream a un tipo lista a una lista con estos
cambios?
Bueno, en vez de usar esfor hecho, lo vamos a comentar.
Bueno, para no modificar lo vamos a hacer acá, vamos a tener un list del tipo String, la lista con
los nombres igual nombres nuestro flujo.
Punto.
Invocamos el operador con lect o recolectar, que también es el final o terminal que para convertir
a un tipo lista string por ejemplo collect acá con un clic colectores punto tu listo o lo podemos hacer
a mano con lector@s en plural.
Punto.
El método tu listo también puede ser tu set, tu map.
En fin, dependiendo.
Entonces convertimos.
Ahora, si esto lo invoco, se va a llamar al PIC.
Como es terminal, ejecuta el cambio, ejecuta el stream, ejecuta flujo.
Por lo tanto se realizan los cambios con el MAP, se inspecciona con el PIC y se vuelve a cambiar acá
a minúscula.
Por lo tanto, va a ser una lista con los nombres en minúscula.
Acá, obviamente, mostro mayúscula, porque el PIK está entre los dos Mapp.
El primer MAPP es el que convierte en mayúscula, pero después volvemos a convertir en minúscula.
Pero acá no tenemos PIK, a menos que copiemos Steppings y lo dejemos acá, lo cortemos o lo copiemos.
En la última transformación, en el último mapa.
Entonces ahí va a mostrar en minúscula todo depende dónde tengamos la infección.
El PIC, pero finalmente la lista es en minúscula.
De hecho, vamos a comentar el PIC.
Colocábamos el punto y coma final, ejecutamos.
Obviamente no pasa nada.
Es decir, si pasa.
Pero como no tenemos el PIC, nos inspeccionÃ, no se imprime, pero si se ejecuta el stream, si realiza
el reformación, incluso lo podríamos comprobar acá con la lista.
Recuerden que la lista del tipo list tiene método for echo.
Dejaba mostrar todo en minúscula.
Entonces, para resumir, finalmente tomamos el stream, lo modificamos primero mayúsculos, después
minuscula.
Luego convertimos este stream a un tipo list utilizando el colectivo que es un operador terminal, y
recorremos la lista con el Florit.
Ahora, si dejamos el PIK, lo vamos a comentar.
Y lo movemos entre medio por acá.
Ejecutamos mayúscula F10.
Acá vamos a tener doble primero lo que imprime el PIC todo en mayúscula, porque está justo después
del MAP, que convierte en mayúscula y luego el foreach.
Pero de la lista de resultado final.
Por eso se muestra por separado.
Nada más.
Continuamos en la siguiente clase.