1
00:00:00,150 --> 00:00:05,160
Continuemos este momento solamente hemos trabajado con el flujo, con el foreach, vemos los datos que

2
00:00:05,160 --> 00:00:08,880
contiene, pero todavía no hemos manipulado, no hemos modificado nada.

3
00:00:08,970 --> 00:00:14,460
Bueno, eso lo podemos implementar con los operadores intermedio, por ejemplo con el operador map,

4
00:00:14,610 --> 00:00:18,900
con el filter y otro más que vamos a ver en esta clase, vamos a ver el map.

5
00:00:19,080 --> 00:00:25,110
Lidié modificar este flujo como por ejemplo convertir en mayúscula, convertir a minúscula los nombres

6
00:00:25,200 --> 00:00:31,160
o bien convertir este flujo del tipo string a otro tipo dato, por ejemplo a un tipo usuario que contenga

7
00:00:31,180 --> 00:00:33,100
nombre, apellido, poder transformar.

8
00:00:33,210 --> 00:00:34,590
Pero recuerden que inmutable.

9
00:00:34,680 --> 00:00:39,780
Por lo tanto, cualquier transformación qoie que invocamos un operador, lo que hace retornar una nueva

10
00:00:39,780 --> 00:00:46,860
instancia de un stream con los cambios con el nuevo flujo y el anterior lo mantiene intacto.

11
00:00:46,980 --> 00:00:53,190
Por lo tanto, podríamos regresar en cualquier momento al estado anterior, al estado original que tenía

12
00:00:53,190 --> 00:00:53,610
antes.

13
00:00:53,800 --> 00:00:55,010
Bien, vamos a cerrar.

14
00:00:55,500 --> 00:00:56,520
Vamos a copiar.

15
00:00:57,460 --> 00:00:59,440
Acá y lo pegamos.

16
00:01:00,920 --> 00:01:03,840
Ejemplos Trim Mato Operador Map.

17
00:01:04,420 --> 00:01:05,020
Perfecto.

18
00:01:05,140 --> 00:01:07,180
Vamos a quedarnos solamente con todo acá.

19
00:01:07,480 --> 00:01:09,610
Todo lo demás lo vamos a ahorrar.

20
00:01:11,100 --> 00:01:15,480
Esto también lo comentamos bien.

21
00:01:15,630 --> 00:01:16,740
Y esto lo hemos comentado.

22
00:01:18,010 --> 00:01:18,940
Importamos.

23
00:01:20,200 --> 00:01:27,160
Lo primero es el MAP, un operador que podemos llamar y a diferencia del foreach, que es una persona

24
00:01:27,160 --> 00:01:28,420
Lanta Consumer.

25
00:01:28,570 --> 00:01:32,200
Por lo tanto se emite cada elemento y podemos trabajar acá.

26
00:01:32,290 --> 00:01:33,790
Es parecido, pero es un functiont.

27
00:01:33,820 --> 00:01:38,740
Por lo tanto se emite cada elemento, pero retorna este elemento modificado.

28
00:01:38,950 --> 00:01:40,210
Es decir, transforma el flujo.

29
00:01:40,420 --> 00:01:41,590
Acá tenemos los nombres.

30
00:01:42,610 --> 00:01:45,400
Acá se emite el nombre por cada elemento.

31
00:01:45,970 --> 00:01:49,340
Y acá una expresión lanta del tipo funciona bien.

32
00:01:49,450 --> 00:01:50,440
Acá voy a bajar.

33
00:01:53,060 --> 00:02:01,060
Siempre rotonda, rotonda, nombre o lo que sea, en este caso voy a colocar mayúscula.

34
00:02:01,220 --> 00:02:05,930
Lo vamos a convertir en tu aparques, estemos realizando alguna transformación.

35
00:02:06,030 --> 00:02:11,150
Bueno, recuerde que esto se puede simplificar y todo lo demás solamente colocando las llaves, el ratón,

36
00:02:11,270 --> 00:02:18,650
para que quede visualmente explícito que el MAP siempre devuelve un resultado o el dato cambiado.

37
00:02:19,590 --> 00:02:21,650
Ahora, si ejecutamos, no pasa nada.

38
00:02:21,830 --> 00:02:27,350
Recuerden que no se ejecuta flujo hasta que invoquemos algún método final.

39
00:02:28,130 --> 00:02:29,090
Por ejemplo, el forillo.

40
00:02:34,370 --> 00:02:35,990
Pato, Paco, Pepa y Pepe.

41
00:02:36,020 --> 00:02:36,830
Todo mayúscula.

42
00:02:37,680 --> 00:02:39,590
Ahora el foreach reto en un Veidt.

43
00:02:39,680 --> 00:02:40,400
Eso lo vimos.

44
00:02:40,580 --> 00:02:44,330
Por lo tanto, no podríamos hacer esto marcaría un error.

45
00:02:44,360 --> 00:02:44,930
Por qué?

46
00:02:45,110 --> 00:02:46,090
Como retornÃ, voy.

47
00:02:46,760 --> 00:02:51,260
Y acá estamos asignando un boy a un tipo string del tipo String.

48
00:02:51,350 --> 00:02:51,920
Se fijan?

49
00:02:52,550 --> 00:02:53,120
No puedo.

50
00:02:53,150 --> 00:02:55,740
No es compatible asignar un bait a este tipo dato.

51
00:02:56,330 --> 00:03:01,130
Entonces por eso el foreach, como es final o terminal, se invoca sobre el string.

52
00:03:01,370 --> 00:03:03,740
Lo que sí se podría hacer es quitar esto.

53
00:03:04,740 --> 00:03:08,420
Solamente lo voy a cortar y lo dejamos de esa forma.

54
00:03:08,570 --> 00:03:12,020
Después voy a regresar atrás, pero solamente para que lo vean.

55
00:03:12,230 --> 00:03:17,960
En este caso, como no se asigna ningún valor a ninguna variable, simplemente coloco el foreach, lo

56
00:03:17,960 --> 00:03:20,060
invoco para hacer algo con el flujo.

57
00:03:23,520 --> 00:03:28,380
Sin asignar a ninguna Arial, pero ya cuando asignamos tal como lo teníamos.

58
00:03:31,480 --> 00:03:36,340
Terminamos y acá con nombres, punto, forillo.

59
00:03:39,620 --> 00:03:40,670
Voy a bajar acá.

60
00:03:40,880 --> 00:03:42,740
Y también tenemos otros operadores.

61
00:03:42,890 --> 00:03:50,800
Por ejemplo, el pick, el pick tiene fondos para inspeccionar, para mirar, solamente para debug realizar

62
00:03:50,960 --> 00:03:54,680
como un rastreo de los elementos apareció el foreach.

63
00:03:54,920 --> 00:03:59,090
Ya, pero solamente se ejecuta como un operador intermedio.

64
00:03:59,150 --> 00:03:59,780
No es final.

65
00:03:59,960 --> 00:04:01,850
Es para ver cómo están quedando nuestros datos.

66
00:04:02,240 --> 00:04:04,430
También es un Consumer y Wake Forest.

67
00:04:04,820 --> 00:04:08,690
Entonces acá se emite el elemento por cada uno elemento.

68
00:04:09,200 --> 00:04:11,090
Acá no devuelve nada.

69
00:04:11,180 --> 00:04:14,200
No hay un ratón shout e.

70
00:04:16,010 --> 00:04:22,280
Para qué a pasar como estamos gestionando ante del MAP acaba mostrar en minúscula.

71
00:04:23,280 --> 00:04:26,610
Luego se transforma y el foreach muestra mayuscula.

72
00:04:26,880 --> 00:04:27,360
Veamos.

73
00:04:31,570 --> 00:04:40,030
Pato minuscula del pic y pato del Foret, Paco minuscula y así por CA1, entonces por cada elemento

74
00:04:40,120 --> 00:04:46,160
primero se inspeccionÃ, después se le aplica la transformación y después se recorre.

75
00:04:46,360 --> 00:04:50,560
Pero recuerden que el foreach es el que gatilla la invocación de estos operadores.

76
00:04:50,920 --> 00:04:54,580
Si no tenemos el foreach como un operador terminal, no pasa nada.

77
00:04:55,490 --> 00:05:01,580
Simplemente ni siquiera sabe ejecutar el PIC ni tampoco el MAP, siempre a través de un operador terminar.

78
00:05:01,730 --> 00:05:06,020
Después vamos a hacer otro más, por ejemplo, para convertir un stream a una lista.

79
00:05:08,390 --> 00:05:10,040
Incluso podremos cambiar el orden.

80
00:05:10,220 --> 00:05:12,770
Por ejemplo, acá tenemos el map al final.

81
00:05:12,920 --> 00:05:14,150
Qué pasa si lo cortamos?

82
00:05:14,810 --> 00:05:15,540
Lo voy a cortar.

83
00:05:17,090 --> 00:05:18,050
Y lo dejamos acá.

84
00:05:19,650 --> 00:05:23,300
Bueno, el русский va a mostrar los datos en mayúscula, igual que el forillo.

85
00:05:25,370 --> 00:05:25,850
Más tar.

86
00:05:25,970 --> 00:05:26,810
Siempre mayúscula.

87
00:05:27,720 --> 00:05:31,500
Pato, Pato, Pacos, incluso pudieron tener más operadores del tipo mapa.

88
00:05:32,160 --> 00:05:39,480
Voy a bajar o acá mismo punto map el elemento, la flecha y lo vamos a modificar.

89
00:05:39,690 --> 00:05:43,320
Ahora la convertimos a minúscula elemento punto.

90
00:05:43,890 --> 00:05:45,720
Que es tú lo workers.

91
00:05:48,120 --> 00:05:49,110
Veamos el resultado.

92
00:05:53,560 --> 00:05:58,930
Pato, desde el primer pic acá se convierte a mayúscula.

93
00:05:59,530 --> 00:06:05,620
Entonces después Paco a mayúscula, pero después el MAPP lo convierte nuevamente a minúscula, vuelve

94
00:06:05,620 --> 00:06:07,630
a transformar el flujo y el foreach.

95
00:06:07,660 --> 00:06:10,270
Finalmente muestro los datos en minúscula.

96
00:06:10,740 --> 00:06:12,730
Ven, ahora vamos a optimizar un poco más.

97
00:06:12,820 --> 00:06:18,130
Por ejemplo, voy a quitar el ratón, las llaves acá también.

98
00:06:19,700 --> 00:06:23,630
Y como son invocaciones de método, bueno, simplemente con.

99
00:06:24,600 --> 00:06:30,570
El estric 2.2.2 tuvo parqués quitamos esto.

100
00:06:46,070 --> 00:06:50,330
Se simplifica bastante utilizando método de referencia.

101
00:06:52,220 --> 00:06:53,050
Mismo resultado?

102
00:06:53,760 --> 00:06:53,870
Bien.

103
00:06:54,010 --> 00:07:01,340
Ahora, qué pasa si quisiera convertir este flujo del tipo stream a un tipo lista a una lista con estos

104
00:07:01,340 --> 00:07:01,820
cambios?

105
00:07:01,980 --> 00:07:05,150
Bueno, en vez de usar esfor hecho, lo vamos a comentar.

106
00:07:07,120 --> 00:07:15,160
Bueno, para no modificar lo vamos a hacer acá, vamos a tener un list del tipo String, la lista con

107
00:07:15,160 --> 00:07:18,970
los nombres igual nombres nuestro flujo.

108
00:07:19,300 --> 00:07:19,900
Punto.

109
00:07:19,960 --> 00:07:26,410
Invocamos el operador con lect o recolectar, que también es el final o terminal que para convertir

110
00:07:26,470 --> 00:07:35,200
a un tipo lista string por ejemplo collect acá con un clic colectores punto tu listo o lo podemos hacer

111
00:07:35,440 --> 00:07:39,220
a mano con lector@s en plural.

112
00:07:39,370 --> 00:07:39,940
Punto.

113
00:07:40,030 --> 00:07:44,260
El método tu listo también puede ser tu set, tu map.

114
00:07:44,290 --> 00:07:46,180
En fin, dependiendo.

115
00:07:46,780 --> 00:07:47,950
Entonces convertimos.

116
00:07:48,220 --> 00:07:51,250
Ahora, si esto lo invoco, se va a llamar al PIC.

117
00:07:51,430 --> 00:07:56,560
Como es terminal, ejecuta el cambio, ejecuta el stream, ejecuta flujo.

118
00:07:56,560 --> 00:08:01,300
Por lo tanto se realizan los cambios con el MAP, se inspecciona con el PIC y se vuelve a cambiar acá

119
00:08:01,390 --> 00:08:01,990
a minúscula.

120
00:08:02,110 --> 00:08:05,920
Por lo tanto, va a ser una lista con los nombres en minúscula.

121
00:08:08,990 --> 00:08:13,430
Acá, obviamente, mostro mayúscula, porque el PIK está entre los dos Mapp.

122
00:08:13,760 --> 00:08:18,620
El primer MAPP es el que convierte en mayúscula, pero después volvemos a convertir en minúscula.

123
00:08:18,740 --> 00:08:24,770
Pero acá no tenemos PIK, a menos que copiemos Steppings y lo dejemos acá, lo cortemos o lo copiemos.

124
00:08:26,590 --> 00:08:28,810
En la última transformación, en el último mapa.

125
00:08:29,500 --> 00:08:33,970
Entonces ahí va a mostrar en minúscula todo depende dónde tengamos la infección.

126
00:08:34,070 --> 00:08:36,910
El PIC, pero finalmente la lista es en minúscula.

127
00:08:37,390 --> 00:08:40,000
De hecho, vamos a comentar el PIC.

128
00:08:44,850 --> 00:08:47,590
Colocábamos el punto y coma final, ejecutamos.

129
00:08:47,670 --> 00:08:48,690
Obviamente no pasa nada.

130
00:08:49,170 --> 00:08:50,190
Es decir, si pasa.

131
00:08:50,250 --> 00:08:57,000
Pero como no tenemos el PIC, nos inspeccionÃ, no se imprime, pero si se ejecuta el stream, si realiza

132
00:08:57,000 --> 00:09:00,060
el reformación, incluso lo podríamos comprobar acá con la lista.

133
00:09:00,420 --> 00:09:03,810
Recuerden que la lista del tipo list tiene método for echo.

134
00:09:10,940 --> 00:09:12,590
Dejaba mostrar todo en minúscula.

135
00:09:13,420 --> 00:09:18,980
Entonces, para resumir, finalmente tomamos el stream, lo modificamos primero mayúsculos, después

136
00:09:18,980 --> 00:09:19,700
minuscula.

137
00:09:20,390 --> 00:09:28,610
Luego convertimos este stream a un tipo list utilizando el colectivo que es un operador terminal, y

138
00:09:28,610 --> 00:09:30,110
recorremos la lista con el Florit.

139
00:09:31,980 --> 00:09:34,770
Ahora, si dejamos el PIK, lo vamos a comentar.

140
00:09:38,310 --> 00:09:41,100
Y lo movemos entre medio por acá.

141
00:09:44,030 --> 00:09:46,220
Ejecutamos mayúscula F10.

142
00:09:48,340 --> 00:09:56,080
Acá vamos a tener doble primero lo que imprime el PIC todo en mayúscula, porque está justo después

143
00:09:56,170 --> 00:09:59,620
del MAP, que convierte en mayúscula y luego el foreach.

144
00:09:59,710 --> 00:10:01,660
Pero de la lista de resultado final.

145
00:10:01,780 --> 00:10:03,190
Por eso se muestra por separado.

146
00:10:03,700 --> 00:10:04,360
Nada más.

147
00:10:04,420 --> 00:10:06,400
Continuamos en la siguiente clase.
