1 00:00:00,430 --> 00:00:11,849 Venga, pues a ver si no se pierde nadie en esta revisión, contextualización teórica, para que luego veáis que realmente todo encaja en los ejercicios. 2 00:00:11,849 --> 00:00:42,170 Vale, recordad que estamos, estamos en el contexto de las colecciones, que las colecciones son objetos, objetos, que me permiten guardar dentro un montón de objetos, eso es una colección, un objeto que me permite guardar dentro un montón de objetos, vale, eso es una colección. 3 00:00:42,170 --> 00:00:44,590 tenemos 4 00:00:44,590 --> 00:00:46,969 de dos tipos 5 00:00:46,969 --> 00:00:53,640 las listas 6 00:00:53,640 --> 00:00:56,539 y los conjuntos 7 00:00:56,539 --> 00:01:00,630 ¿vale? 8 00:01:01,289 --> 00:01:02,909 luego aparte tenemos 9 00:01:02,909 --> 00:01:04,950 otra cosa que se llama colección 10 00:01:04,950 --> 00:01:06,829 todo esto estoy ahora mismo repitiendo 11 00:01:06,829 --> 00:01:08,930 ¿vale? otra cosa que también se llama 12 00:01:08,930 --> 00:01:09,569 colección 13 00:01:09,569 --> 00:01:13,329 que son los diccionarios 14 00:01:13,329 --> 00:01:14,849 o mapas, voy a llamar mapas 15 00:01:14,849 --> 00:01:16,030 que lo entendéis mejor 16 00:01:16,030 --> 00:01:21,640 ¿Vale? Pues 17 00:01:21,640 --> 00:01:24,420 ¿Por qué lo he sacado de colecciones? 18 00:01:25,200 --> 00:01:26,560 Porque todo esto 19 00:01:26,560 --> 00:01:28,519 Cuando se programa en Java 20 00:01:28,519 --> 00:01:29,900 Todo esto cuando se programa en Java 21 00:01:29,900 --> 00:01:31,599 Se programa como siempre 22 00:01:31,599 --> 00:01:33,480 Una arquitectura de interfaces 23 00:01:33,480 --> 00:01:35,739 Clases que implementan unas a otras 24 00:01:35,739 --> 00:01:37,019 ¿Vale? 25 00:01:37,400 --> 00:01:39,799 Se implementa, esto luego en Java se ha programado 26 00:01:39,799 --> 00:01:41,719 Como clases que forman parte 27 00:01:41,719 --> 00:01:43,200 De una jerarquía 28 00:01:43,200 --> 00:01:44,540 Se ha programado así 29 00:01:44,540 --> 00:01:46,579 Entonces, tenemos 30 00:01:46,579 --> 00:01:49,200 La superclase 31 00:01:49,200 --> 00:01:52,260 más grande de todas 32 00:01:52,260 --> 00:01:53,900 que es la superclase colección 33 00:01:53,900 --> 00:01:56,159 esa es una clase abstracta 34 00:01:56,159 --> 00:01:58,459 que no se puede instanciar 35 00:01:58,459 --> 00:01:59,959 porque es una colección genérica 36 00:01:59,959 --> 00:02:01,859 que no sabemos de qué tipo es 37 00:02:01,859 --> 00:02:02,900 es lista, es conjunto 38 00:02:02,900 --> 00:02:06,620 esta simplemente ofrece algunos métodos básicos 39 00:02:06,620 --> 00:02:07,780 pero vacíos 40 00:02:07,780 --> 00:02:09,919 como el añadir 41 00:02:09,919 --> 00:02:12,879 el ver el tamaño 42 00:02:12,879 --> 00:02:15,400 métodos muy básicos 43 00:02:15,400 --> 00:02:16,599 hay en esta colección 44 00:02:16,599 --> 00:02:21,159 ¿Qué clase de la clase es tracha? 45 00:02:23,020 --> 00:02:25,259 Mírate la grabación de hace dos semanas. 46 00:02:28,099 --> 00:02:29,539 De verdad, ¿eh? 47 00:02:30,159 --> 00:02:31,979 Y luego decís que os pegamos. 48 00:02:32,500 --> 00:02:34,300 Es que más deberíamos pegaros. 49 00:02:36,979 --> 00:02:38,979 Entre que repite las cosas una y otra vez. 50 00:02:38,979 --> 00:02:39,740 Y luego encima. 51 00:02:41,039 --> 00:02:42,219 Entre ayer y hoy. 52 00:02:43,080 --> 00:02:44,219 Nos han puteado. 53 00:02:44,560 --> 00:02:45,080 ¿Puteado? 54 00:02:45,180 --> 00:02:46,439 Nos han tragañado todas las uñas. 55 00:02:46,599 --> 00:02:47,800 Nos ha regañado todo el día. 56 00:02:49,159 --> 00:02:50,780 Ya, pero sed honestos. 57 00:02:50,960 --> 00:02:52,659 ¿No merece que le regañen por preguntar 58 00:02:52,659 --> 00:02:53,479 por una clase abstracta? 59 00:02:53,659 --> 00:02:55,139 Es la segunda vez que le regañan hoy. 60 00:02:55,379 --> 00:02:56,000 Es que es lo peor. 61 00:02:57,900 --> 00:02:59,520 Es que si tuvieras propiedad 62 00:02:59,520 --> 00:03:00,479 y se ha sentado con Rosa 63 00:03:00,479 --> 00:03:01,500 en el trabajo físico así. 64 00:03:03,120 --> 00:03:04,659 No, yo eso no lo voy a hacer. 65 00:03:05,159 --> 00:03:06,580 Pero si te regaño, 66 00:03:06,800 --> 00:03:09,120 porque es que estoy repitiendo cosas 67 00:03:09,120 --> 00:03:09,840 y no hay otra vez, 68 00:03:10,139 --> 00:03:11,139 porque no lo miráis. 69 00:03:11,819 --> 00:03:14,639 Las clases abstractas las hemos trabajado ya mil veces. 70 00:03:14,639 --> 00:03:35,120 ¿Qué habrás hecho? 71 00:03:36,620 --> 00:03:37,599 ¿Qué habrás hecho? 72 00:03:37,599 --> 00:03:38,280 Bueno 73 00:03:38,280 --> 00:03:43,770 ¿Qué vas a decir en tu defensa? 74 00:03:44,210 --> 00:03:45,229 Porque no tienes ninguna 75 00:03:45,229 --> 00:03:53,099 ¿Perdón? 76 00:03:56,129 --> 00:03:56,430 ¿Perdón? 77 00:03:57,229 --> 00:03:57,550 ¿Perdón? 78 00:03:57,710 --> 00:04:00,909 ¿Quién estaba ayudando? 79 00:04:01,509 --> 00:04:03,590 ¿Quién estaba ayudando? 80 00:04:03,909 --> 00:04:04,729 Era él 81 00:04:04,729 --> 00:04:06,930 Tú a no sé quién 82 00:04:06,930 --> 00:04:09,330 Y te ha echado por eso 83 00:04:09,330 --> 00:04:11,009 Por ayudarle a una gente de esta asignatura 84 00:04:11,009 --> 00:04:12,770 A ver, es que 85 00:04:12,770 --> 00:04:14,810 Tenéis que ser espabilados 86 00:04:14,810 --> 00:04:17,050 Tenéis que ser espabilados 87 00:04:17,050 --> 00:04:17,990 Entonces 88 00:04:17,990 --> 00:04:20,829 si hacéis algo que se supone 89 00:04:20,829 --> 00:04:21,829 que no se tiene que hacer 90 00:04:21,829 --> 00:04:24,870 que es, te ayudo en programación en clase de entorno 91 00:04:24,870 --> 00:04:25,949 que no se note 92 00:04:25,949 --> 00:04:29,050 o disimulalo, o si hay que mentir se miente 93 00:04:29,050 --> 00:04:30,730 pero hombre 94 00:04:30,730 --> 00:04:32,910 tenéis que ser un poquito más espabilados 95 00:04:44,910 --> 00:04:46,329 vas a hacer que se vaya 96 00:04:46,329 --> 00:04:48,350 ¿Me estás culpando a mí de que no sabes tú 97 00:04:48,350 --> 00:04:49,329 lo que es una clase abstracta? 98 00:04:49,449 --> 00:04:49,769 ¡Toma! 99 00:04:51,089 --> 00:04:51,569 ¡Vamos! 100 00:04:57,870 --> 00:04:59,529 Vale, yo te lo voy a decir 101 00:04:59,529 --> 00:05:00,750 porque soy muy buena. 102 00:05:01,470 --> 00:05:03,370 Pero estoy 103 00:05:03,370 --> 00:05:05,550 teniendo en cuenta que ya te lo he 104 00:05:05,550 --> 00:05:07,709 dicho alguna vez y que se te ha olvidado 105 00:05:07,709 --> 00:05:09,350 que me garantiza a mí 106 00:05:09,350 --> 00:05:11,490 que decírtelo ahora no significa que me vas a dar la brasa 107 00:05:11,490 --> 00:05:12,569 con ello mañana otra vez. 108 00:05:14,310 --> 00:05:15,149 Bueno, en fin. 109 00:05:15,149 --> 00:05:16,670 versión resumida 110 00:05:16,670 --> 00:05:19,550 una clase abstracta 111 00:05:19,550 --> 00:05:21,269 es una clase que tiene métodos 112 00:05:21,269 --> 00:05:23,850 vacíos, sin implementar 113 00:05:23,850 --> 00:05:25,509 porque no 114 00:05:25,509 --> 00:05:27,990 puede todavía comprometerse 115 00:05:27,990 --> 00:05:29,110 a darles una implementación 116 00:05:29,110 --> 00:05:31,470 porque depende de detalles que aún no tienen 117 00:05:31,470 --> 00:05:33,250 esos detalles, ¿quién los va a tener? 118 00:05:33,750 --> 00:05:34,790 sus subclases 119 00:05:34,790 --> 00:05:37,569 entonces como sus subclases ya sí que tendrán 120 00:05:37,569 --> 00:05:39,670 esos detalles, serán las subclases 121 00:05:39,670 --> 00:05:41,810 las que sobrescriban esos métodos 122 00:05:41,810 --> 00:05:42,829 y los implementen 123 00:05:42,829 --> 00:05:45,089 idea básica de la herencia 124 00:05:45,089 --> 00:05:46,569 Es una clase sin métodos, ¿no? 125 00:05:46,790 --> 00:05:51,470 No, es una clase con al menos un método vacío. 126 00:05:51,990 --> 00:05:53,009 Es una clase abstracta. 127 00:05:53,990 --> 00:05:55,170 ¿Y por qué hay un método vacío? 128 00:05:56,850 --> 00:05:58,990 Bueno, hay un método vacío. 129 00:06:00,050 --> 00:06:06,810 A ver, todo esto tiene que ver con que esa clase está pensada para ser superclase de otras 130 00:06:06,810 --> 00:06:10,850 y por tanto para unificar comportamientos y características. 131 00:06:10,850 --> 00:06:32,850 Entonces, como está pensada para unificar comportamientos y características de todas sus subclases, como esas subclases todas van a implementar un método, por ejemplo, el método correr, si estamos hablando de animales, pues ese método se pone en la superclase para unificar y dar a entender que todas las subclases tendrán ese comportamiento de correr. 132 00:06:32,850 --> 00:06:35,149 ¿vale? pero ¿qué pasa? 133 00:06:35,269 --> 00:06:37,569 que la superclase todavía no sabe 134 00:06:37,569 --> 00:06:39,589 cómo se corre, dependerá de si es gato 135 00:06:39,589 --> 00:06:41,189 si es dinosaurio 136 00:06:41,189 --> 00:06:43,470 o si es hormiga, con lo cual 137 00:06:43,470 --> 00:06:45,949 la superclase lo deja vacío 138 00:06:45,949 --> 00:06:47,730 y las subclases 139 00:06:47,730 --> 00:06:48,829 que ya tienen los detalles 140 00:06:48,829 --> 00:06:51,389 lo sobrescriben con cada una su propia 141 00:06:51,389 --> 00:06:53,430 implementación, ¿qué ventaja 142 00:06:53,430 --> 00:06:55,529 tiene eso? que cuando 143 00:06:55,529 --> 00:06:57,310 tienes una referencia de tipo animal 144 00:06:57,310 --> 00:06:59,930 y luego 145 00:06:59,930 --> 00:07:01,709 la instancias con gato, perro 146 00:07:01,709 --> 00:07:02,769 porque eso si lo sabes 147 00:07:02,769 --> 00:07:05,649 que tú puedes una referencia de una superclase 148 00:07:05,649 --> 00:07:07,310 instanciarla con objetos de sus clases 149 00:07:07,310 --> 00:07:09,329 pues esa referencia 150 00:07:09,329 --> 00:07:11,529 de tipo animal, podrá llamar a correr 151 00:07:11,529 --> 00:07:13,629 porque correr está en la superclase 152 00:07:13,629 --> 00:07:14,490 aunque esté vacío 153 00:07:14,490 --> 00:07:16,490 esa es la ventaja, podrá llamarla 154 00:07:16,490 --> 00:07:21,410 viene a ser lo mismo 155 00:07:21,410 --> 00:07:23,449 bueno, en realidad porque una llegó después de la otra 156 00:07:23,449 --> 00:07:26,009 es una cuestión de diseño 157 00:07:26,009 --> 00:07:27,569 porque la clase abstracta 158 00:07:27,569 --> 00:07:28,810 te permite además 159 00:07:28,810 --> 00:07:31,110 tener métodos que no sean 160 00:07:31,110 --> 00:07:33,810 que no sean abstractos 161 00:07:33,810 --> 00:07:35,509 te permite tener constructores 162 00:07:35,509 --> 00:07:36,870 te permite tener propiedades 163 00:07:36,870 --> 00:07:38,269 que la interfaz no te lo permite 164 00:07:38,269 --> 00:07:40,189 entonces no son idénticas 165 00:07:40,189 --> 00:07:41,850 claro 166 00:07:41,850 --> 00:07:44,709 ¿está claro? 167 00:07:48,709 --> 00:07:49,930 te lo acabo de decir 168 00:07:49,930 --> 00:07:52,329 porque si tú no pones ese método ahí 169 00:07:52,329 --> 00:07:54,769 luego no podrías llamarlo 170 00:07:54,769 --> 00:07:56,610 desde la referencia 171 00:07:56,610 --> 00:07:57,910 porque el compilador te diría 172 00:07:57,910 --> 00:07:59,629 uy, este método no está declarado 173 00:07:59,629 --> 00:08:04,509 llamas al de la subclase 174 00:08:04,509 --> 00:08:06,350 o sea 175 00:08:06,350 --> 00:08:08,790 esta misma clase que no es lo mismo 176 00:08:08,790 --> 00:08:10,490 el tiempo de desarrollo 177 00:08:10,490 --> 00:08:12,490 que el tiempo de ejecución, en tiempo de desarrollo 178 00:08:12,490 --> 00:08:14,829 el compilador mira si está en la superclase 179 00:08:14,829 --> 00:08:16,610 y en tiempo de ejecución la máquina 180 00:08:16,610 --> 00:08:18,790 virtual mira el de la subclase 181 00:08:18,790 --> 00:08:20,810 todo esto lo hemos contado mil veces 182 00:08:20,810 --> 00:08:21,990 esta es la mil una 183 00:08:21,990 --> 00:08:23,329 ¿vale? 184 00:08:26,529 --> 00:08:28,389 bueno, pues 185 00:08:28,389 --> 00:08:30,870 entonces, ya se me ha ido el hilo 186 00:08:30,870 --> 00:08:32,509 en fin 187 00:08:32,509 --> 00:08:34,970 sí, a ver 188 00:08:34,970 --> 00:08:37,090 colección 189 00:08:37,090 --> 00:08:38,210 es la super clase 190 00:08:38,210 --> 00:08:40,870 que te ofrece 191 00:08:40,870 --> 00:08:42,889 unos métodos muy básicos, comunes 192 00:08:42,889 --> 00:08:45,230 para todas las colecciones, pero están vacíos 193 00:08:45,230 --> 00:08:47,289 porque luego cada implementación 194 00:08:47,289 --> 00:08:49,090 decidirá cómo hacerlo del tamaño, etc. 195 00:08:49,789 --> 00:08:50,070 vale 196 00:08:50,070 --> 00:08:52,870 dos implementaciones básicas 197 00:08:52,870 --> 00:08:54,250 de colección 198 00:08:54,250 --> 00:08:56,850 las listas y los conjuntos 199 00:08:56,850 --> 00:08:58,970 las listas 200 00:08:58,970 --> 00:09:00,889 están en la implementación 201 00:09:00,889 --> 00:09:02,470 list que implementa collection 202 00:09:02,470 --> 00:09:05,190 y los conjuntos 203 00:09:05,190 --> 00:09:06,610 están en la implementación set 204 00:09:06,610 --> 00:09:07,730 que implementa collection 205 00:09:07,730 --> 00:09:10,590 pero claro, list y set 206 00:09:10,590 --> 00:09:12,529 siguen siendo abstractas 207 00:09:12,529 --> 00:09:14,529 o interfaces, no sé exactamente 208 00:09:14,529 --> 00:09:16,250 ¿por qué? 209 00:09:16,570 --> 00:09:18,610 porque listas puede haber de varios tipos 210 00:09:18,610 --> 00:09:20,389 y esta sigue siendo abstracta 211 00:09:20,389 --> 00:09:21,629 porque puede haber de varios tipos 212 00:09:21,629 --> 00:09:23,529 entonces 213 00:09:23,529 --> 00:09:26,629 ¿por qué hay dos? 214 00:09:26,850 --> 00:09:33,649 Porque list, por ejemplo, ofrece un método getPorPosición que set no te ofrece. 215 00:09:34,870 --> 00:09:35,549 ¿Por qué? 216 00:09:35,549 --> 00:09:41,789 Porque las listas son colecciones en las cuales la posición importa 217 00:09:41,789 --> 00:09:46,710 y los conjuntos son colecciones en las cuales la posición no importa. 218 00:09:47,350 --> 00:09:48,690 Esa es su única diferencia. 219 00:09:49,750 --> 00:09:51,090 ¿En un conjunto accedes al dato? 220 00:09:51,090 --> 00:09:53,190 en un conjunto 221 00:09:53,190 --> 00:09:55,289 tú tienes el dato y tendrás 222 00:09:55,289 --> 00:09:57,110 que iterar hasta que encuentras 223 00:09:57,110 --> 00:09:58,490 el que es igual al que estás buscando 224 00:09:58,490 --> 00:10:01,169 y a ese objeto lo copias 225 00:10:01,169 --> 00:10:01,870 en otro objeto 226 00:10:01,870 --> 00:10:04,750 claro, en función de lo que tengas que hacer, tú sabes que están ahí 227 00:10:04,750 --> 00:10:06,269 que hay un montón de objetos 228 00:10:06,269 --> 00:10:07,990 y tú iteras para ver lo que hay 229 00:10:07,990 --> 00:10:10,690 con un for each, con un for de índice no 230 00:10:10,690 --> 00:10:11,690 porque hay un índice que vale 231 00:10:11,690 --> 00:10:15,110 claro, en las listas 232 00:10:15,110 --> 00:10:16,389 la posición importa 233 00:10:16,389 --> 00:10:18,730 y en los conjuntos 234 00:10:18,730 --> 00:10:19,409 la posición 235 00:10:19,409 --> 00:10:21,230 no importa 236 00:10:21,230 --> 00:10:28,169 vale, eso implica 237 00:10:28,169 --> 00:10:29,870 que esta interfaz list 238 00:10:29,870 --> 00:10:32,230 añade un método get por posición 239 00:10:32,230 --> 00:10:33,690 que esta no tiene 240 00:10:33,690 --> 00:10:36,450 con lo cual este get nunca está en collection 241 00:10:36,450 --> 00:10:38,490 no está, porque si estuviera en collection 242 00:10:38,490 --> 00:10:41,070 lo implementaría 243 00:10:41,070 --> 00:10:42,509 set y en set 244 00:10:42,509 --> 00:10:43,429 no tiene ningún sentido 245 00:10:43,429 --> 00:10:46,570 entonces hay métodos propios de list 246 00:10:46,570 --> 00:10:48,629 que no están en set 247 00:10:48,629 --> 00:10:49,389 por supuesto 248 00:10:49,389 --> 00:10:52,210 y por supuesto en collection tampoco 249 00:10:52,210 --> 00:10:53,990 porque collection tiene los comunes 250 00:10:53,990 --> 00:10:54,990 para todas las colecciones 251 00:10:54,990 --> 00:10:56,029 pero al final para todas estas cosas 252 00:10:56,029 --> 00:10:57,929 casi siempre conviene castearlo 253 00:10:57,929 --> 00:10:59,610 a la última subclase y ya está 254 00:10:59,610 --> 00:11:00,710 aunque lo crees como list 255 00:11:00,710 --> 00:11:01,309 claro 256 00:11:01,309 --> 00:11:07,889 como collection no lo instancias 257 00:11:07,889 --> 00:11:09,610 porque lo dejas demasiado abierto 258 00:11:09,610 --> 00:11:11,789 y luego los métodos que te va a ofrecer el compilador 259 00:11:11,789 --> 00:11:12,590 son tan poquitos 260 00:11:12,590 --> 00:11:14,730 aunque lo crees como collection 261 00:11:14,730 --> 00:11:17,549 siempre conviene castearlo a linkedin 262 00:11:17,549 --> 00:11:20,570 claro, un casteo controlado 263 00:11:20,570 --> 00:11:21,889 asegurándote de que esa colección 264 00:11:21,889 --> 00:11:23,289 no es realmente una lista aún, claro. 265 00:11:24,389 --> 00:11:30,570 Vale, entonces, de nuevo, list y set siguen siendo abstractas, 266 00:11:30,649 --> 00:11:33,649 interfaces, porque todavía no tienen una implementación concreta. 267 00:11:34,250 --> 00:11:36,409 Ahora ya sí que vamos a darle una concreta. 268 00:11:37,370 --> 00:11:41,230 ¿Cuáles son las dos básicas implementaciones de list? 269 00:11:42,370 --> 00:11:54,379 Pues ArrayList y LinkedList, que por dentro ya sabemos sus detalles 270 00:11:54,379 --> 00:11:56,159 porque las hemos programado nosotros. 271 00:11:56,620 --> 00:11:57,559 Ya sabemos sus detalles. 272 00:11:58,559 --> 00:11:59,659 Y el saber sus detalles 273 00:11:59,659 --> 00:12:02,500 nos permite decidir cuál de las dos. 274 00:12:02,559 --> 00:12:04,500 Si las dos son lo mismo, dos listas 275 00:12:04,500 --> 00:12:06,279 en las cuales la posición importa, 276 00:12:07,120 --> 00:12:08,460 ¿qué criterio tengo 277 00:12:08,460 --> 00:12:10,639 para elegir una u otra? Pues ya lo hemos dicho a veces. 278 00:12:11,440 --> 00:12:12,240 El ArrayList 279 00:12:12,240 --> 00:12:14,440 tiene muy buen 280 00:12:14,440 --> 00:12:16,960 rendimiento cuando sobre todo se hacen consultas 281 00:12:16,960 --> 00:12:18,820 y muy mal rendimiento 282 00:12:18,820 --> 00:12:20,740 cuando sobre todo se hacen inserciones y borrarlos. 283 00:12:21,500 --> 00:12:23,220 Y el LinkedList es el complementario. 284 00:12:23,220 --> 00:12:25,419 tiene muy buen rendimiento cuando se hacen 285 00:12:25,419 --> 00:12:27,840 insertiones y borrados y muy mal rendimiento 286 00:12:27,840 --> 00:12:29,419 cuando sobre todo se hacen consultas 287 00:12:29,419 --> 00:12:31,399 por su propia naturaleza de cómo están 288 00:12:31,399 --> 00:12:33,200 programados, esto ya lo hemos dicho 289 00:12:33,200 --> 00:12:35,580 cuando hay 290 00:12:35,580 --> 00:12:37,519 pocos datos, pues siempre un array 291 00:12:37,519 --> 00:12:39,080 list mejor porque el array siempre es 292 00:12:39,080 --> 00:12:41,039 más cómodo, más rápido 293 00:12:41,039 --> 00:12:43,259 vale, pero bueno 294 00:12:43,259 --> 00:12:44,899 en general normalmente 295 00:12:44,899 --> 00:12:47,279 tampoco es, salvo 296 00:12:47,279 --> 00:12:49,279 aplicaciones en las cuales el rendimiento sea 297 00:12:49,279 --> 00:12:50,659 crítico y hay muchísimos datos 298 00:12:50,659 --> 00:12:53,120 pues tampoco hay mucha trascendencia entre una 299 00:12:53,120 --> 00:12:56,320 LinkedList 300 00:12:56,320 --> 00:12:58,559 ofrece métodos que no tiene ArrayList 301 00:12:58,559 --> 00:13:00,759 porque LinkedList 302 00:13:00,759 --> 00:13:02,440 se usa 303 00:13:02,440 --> 00:13:04,259 cuando queremos simular 304 00:13:04,259 --> 00:13:06,340 las estructuras 305 00:13:06,340 --> 00:13:07,379 que todos 306 00:13:07,379 --> 00:13:10,500 los que trabajamos en programación nos suenan 307 00:13:10,500 --> 00:13:11,139 de toda la vida 308 00:13:11,139 --> 00:13:13,820 que son las pilas y las colas 309 00:13:13,820 --> 00:13:15,639 os suenan los términos de pilas y colas 310 00:13:15,639 --> 00:13:18,320 en sistemas operativos de gestión de procesos 311 00:13:18,320 --> 00:13:19,340 os sonará 312 00:13:19,340 --> 00:13:21,740 los procesos se van gestionando en colas 313 00:13:21,740 --> 00:13:22,679 tipos, tipos 314 00:13:22,679 --> 00:13:24,279 todo eso 315 00:13:24,279 --> 00:13:26,759 vale, lo pongo aquí 316 00:13:26,759 --> 00:13:27,940 linked list 317 00:13:27,940 --> 00:13:31,259 se usa también 318 00:13:31,259 --> 00:13:36,509 para simular 319 00:13:36,509 --> 00:13:39,470 estructuras 320 00:13:39,470 --> 00:13:42,450 como pilas y colas 321 00:13:42,450 --> 00:13:43,870 vale 322 00:13:43,870 --> 00:13:47,950 de hecho 323 00:13:47,950 --> 00:13:50,429 hay clases del año katapun 324 00:13:50,429 --> 00:13:52,830 ya hechas 325 00:13:52,830 --> 00:13:53,429 en java 326 00:13:53,429 --> 00:13:55,889 que son exactamente una pila 327 00:13:55,889 --> 00:13:57,070 que es la clase stack 328 00:13:57,070 --> 00:13:59,850 pero esa es una clase 329 00:13:59,850 --> 00:14:00,929 que se usa muy poco 330 00:14:00,929 --> 00:14:03,809 de hecho yo creo que ni es genérica 331 00:14:03,809 --> 00:14:05,470 ni nada, está con object 332 00:14:05,470 --> 00:14:07,389 tal cual no la puedes parametrizar ni nada 333 00:14:07,389 --> 00:14:08,610 ¿vale? entonces 334 00:14:08,610 --> 00:14:13,129 ¿es necesario parar? 335 00:14:15,919 --> 00:14:17,000 no, si quiero yo no 336 00:14:17,000 --> 00:14:19,759 nadie se pronuncia 337 00:14:19,759 --> 00:14:24,720 no, salimos igual 338 00:14:24,720 --> 00:14:26,019 bueno 339 00:14:26,019 --> 00:14:28,500 Continúo hasta terminar esta parte 340 00:14:28,500 --> 00:14:30,320 Continúo un poquito, sí, lo que pasa es que tengo 341 00:14:30,320 --> 00:14:31,919 cuerda para rato, pero bueno, en algún momento 342 00:14:31,919 --> 00:14:33,580 paro un ratito, ¿vale? 343 00:14:35,440 --> 00:14:36,600 Que es que las mujeres 344 00:14:36,600 --> 00:14:37,159 hablan mucho 345 00:14:37,159 --> 00:14:43,980 A ver 346 00:14:43,980 --> 00:14:46,299 Nosotras podemos permitir 347 00:14:46,299 --> 00:14:47,740 decir lo que queramos 348 00:14:47,740 --> 00:14:49,440 Es una de las ventajas de ser mujeres, ¿no? 349 00:14:49,759 --> 00:14:51,039 Yo puedo permitirme decir esto 350 00:14:51,039 --> 00:14:55,340 A ver, cada uno se puede permitir 351 00:14:55,340 --> 00:14:57,320 No, pero me refiero a que 352 00:14:57,320 --> 00:14:58,580 Estefano dice eso y dice 353 00:14:58,580 --> 00:14:59,379 Joder, qué machista 354 00:14:59,379 --> 00:15:00,399 Yo digo eso y da igual 355 00:15:00,399 --> 00:15:11,120 No, ellos sí pueden decirlo 356 00:15:11,120 --> 00:15:12,840 Son unos españoles de mierda 357 00:15:12,840 --> 00:15:13,820 Ellos sí pueden ser españoles 358 00:15:13,820 --> 00:15:17,460 Ah, bueno, pero eso ya es otro tema 359 00:15:17,460 --> 00:15:18,320 Bueno 360 00:15:18,320 --> 00:15:19,700 Entonces 361 00:15:19,700 --> 00:15:22,159 Eso 362 00:15:22,159 --> 00:15:24,100 Hispano 363 00:15:24,100 --> 00:15:26,519 Vale, entonces 364 00:15:26,519 --> 00:15:30,399 Sabéis lo que es una pila, ¿no? 365 00:15:30,460 --> 00:15:33,059 Una pila es otra estructura de datos 366 00:15:33,059 --> 00:15:35,139 Para guardar datos 367 00:15:35,139 --> 00:15:37,620 Pero con una particularidad muy concreta 368 00:15:37,620 --> 00:15:41,639 La pila es una estructura de datos 369 00:15:41,639 --> 00:15:43,659 Cuya particularidad es 370 00:15:43,659 --> 00:15:45,179 Que solo tiene en principio 371 00:15:45,179 --> 00:15:46,600 Dos métodos, que son 372 00:15:46,600 --> 00:15:49,399 Meter y sacar 373 00:15:49,399 --> 00:15:52,440 Apilar y desapilar 374 00:15:52,440 --> 00:15:55,820 bus o pop, que son los nombres habituales 375 00:15:55,820 --> 00:15:57,440 que se usan en contextos términos 376 00:15:57,440 --> 00:15:59,480 entonces, una pila es 377 00:15:59,480 --> 00:16:01,740 pues una estructura 378 00:16:01,740 --> 00:16:02,940 la pila de jerseys 379 00:16:02,940 --> 00:16:05,580 ¿qué es lo único que puedes hacer con la pila de jerseys? 380 00:16:06,259 --> 00:16:07,200 poner uno arriba 381 00:16:07,200 --> 00:16:09,500 no tienes opción de ponerlo entre medias 382 00:16:09,500 --> 00:16:11,379 esa opción no la tienes, ponerlo arriba 383 00:16:11,379 --> 00:16:13,720 o sacarlo 384 00:16:13,720 --> 00:16:15,480 el de arriba, sacarlo del medio 385 00:16:15,480 --> 00:16:17,799 no tienes opción, entonces es una estructura 386 00:16:17,799 --> 00:16:19,179 que no tienes 387 00:16:19,179 --> 00:16:20,620 en la pila de jerseys que yo digo no 388 00:16:20,620 --> 00:16:48,820 Vale, una pila es una estructura muy sencilla de programar, muy sencilla de programar, porque solo te ofrece dos métodos, el método apilar, que se suele llamar push, y el método desapilar, que se suele llamar pop, es lo único que te ofrece esa estructura, cuando tú haces push, estás poniendo uno arriba, y cuando haces pop, estás sacando el de arriba, no te ofrece ni meter en otra, silencio, 389 00:16:48,820 --> 00:16:52,440 no te ofrece ni meter en el medio 390 00:16:52,440 --> 00:16:53,580 ni meter abajo 391 00:16:53,580 --> 00:16:56,100 ni te ofrece sacar el del medio 392 00:16:56,100 --> 00:16:56,919 y sacar el de abajo 393 00:16:56,919 --> 00:16:58,740 entonces 394 00:16:58,740 --> 00:17:01,679 a ver, os estáis despistando 395 00:17:01,679 --> 00:17:03,940 alguien me hace caso 396 00:17:03,940 --> 00:17:05,819 aparte de él o él aparenta que me lo hace 397 00:17:05,819 --> 00:17:06,960 yo te estaba diciendo 398 00:17:06,960 --> 00:17:08,180 que me acabas de preguntar 399 00:17:08,180 --> 00:17:12,619 si, mirando a tu culo 400 00:17:12,619 --> 00:17:15,960 bueno, vale 401 00:17:15,960 --> 00:17:17,400 entonces, la pila 402 00:17:17,400 --> 00:17:19,480 ¿qué ventaja tiene? Pues que es muy fácil 403 00:17:19,480 --> 00:17:21,440 de programar porque solo te ofrece dos 404 00:17:21,440 --> 00:17:23,519 métodos. Pon arriba y saca abajo 405 00:17:23,519 --> 00:17:25,579 y saca del de arriba. ¿Cuál es 406 00:17:25,579 --> 00:17:27,559 la desventaja que tiene? Que si 407 00:17:27,559 --> 00:17:29,500 tú quieres mirar el jersey de más 408 00:17:29,500 --> 00:17:31,500 abajo, tienes que sacarlos todos 409 00:17:31,500 --> 00:17:33,119 pop, pop, pop, hasta sacar todos. 410 00:17:34,259 --> 00:17:35,720 Claro, pero ¿qué ocurre? 411 00:17:36,200 --> 00:17:37,859 Que si hay una situación 412 00:17:37,859 --> 00:17:41,559 ¿qué ocurre? Que si hay 413 00:17:41,559 --> 00:17:43,359 una situación que tú has identificado 414 00:17:43,359 --> 00:17:45,500 en la cual a ti lo único 415 00:17:45,500 --> 00:17:47,440 te interesa es guardar 416 00:17:47,440 --> 00:17:49,500 arriba y cuando saques sacar el de 417 00:17:49,500 --> 00:17:51,480 arriba, si identificas que hay 418 00:17:51,480 --> 00:17:53,559 una situación que se adapta a tus necesidades 419 00:17:53,559 --> 00:17:55,579 pues entonces 420 00:17:55,579 --> 00:17:56,880 usas una pila 421 00:17:56,880 --> 00:17:59,380 con sus métodos push y pop y se acabó 422 00:17:59,380 --> 00:18:01,539 pero si tu situación 423 00:18:01,539 --> 00:18:03,759 necesita que tú saques de abajo 424 00:18:03,759 --> 00:18:05,259 o apiles en otro lado 425 00:18:05,259 --> 00:18:07,500 no usarás una pila porque la pila solo te 426 00:18:07,500 --> 00:18:09,460 permite apilar arriba y sacar el de arriba 427 00:18:09,460 --> 00:18:10,000 ¿vale? 428 00:18:10,980 --> 00:18:13,440 hay situaciones informáticas, que es en lo que hablamos 429 00:18:13,440 --> 00:18:15,420 nosotros, que se adaptan 430 00:18:15,420 --> 00:18:17,819 a eso. En procesos 431 00:18:17,819 --> 00:18:19,380 igual, pues 432 00:18:19,380 --> 00:18:21,240 según se van llamando a procesos anidados, 433 00:18:21,880 --> 00:18:23,339 tú vas guardando el contador de programa 434 00:18:23,339 --> 00:18:25,480 que se llaman. Entonces, cuando tú guardas el contador de programa 435 00:18:25,480 --> 00:18:26,700 quieres ponerlo siempre arriba. 436 00:18:27,640 --> 00:18:29,339 Y cuando sacas, quieres sacar siempre 437 00:18:29,339 --> 00:18:31,500 el de arriba, pero quieres continuar el punto en el que lo dejaste. 438 00:18:32,039 --> 00:18:33,160 Entonces, hay situaciones 439 00:18:33,160 --> 00:18:35,299 de gestión informática 440 00:18:35,299 --> 00:18:37,099 en las cuales la pila viene perfecta. Yo solamente 441 00:18:37,099 --> 00:18:38,339 quiero poner arriba y sacar de arriba. 442 00:18:39,339 --> 00:18:41,200 Bueno, pues esta estructura, 443 00:18:41,279 --> 00:18:43,279 que es una estructura que todos los informáticos tenemos que conocer, 444 00:18:43,440 --> 00:18:44,980 a pila, porque es muy sencilla 445 00:18:44,980 --> 00:18:45,960 y a veces se adapta 446 00:18:45,960 --> 00:18:49,400 en esta programada de tiempos inmemoriales 447 00:18:49,400 --> 00:18:50,599 en la clase stack 448 00:18:50,599 --> 00:18:52,940 de Java, que pasamos de ella 449 00:18:52,940 --> 00:18:54,420 completamente porque es una clase 450 00:18:54,420 --> 00:18:57,019 muy patatera, pero que la podéis ver por ahí 451 00:18:57,019 --> 00:18:59,819 y la linked list 452 00:18:59,819 --> 00:19:01,000 que esta ya sí que es una clase 453 00:19:01,000 --> 00:19:01,599 moderna 454 00:19:01,599 --> 00:19:03,900 te permite 455 00:19:03,900 --> 00:19:07,220 instanciarla y trabajar 456 00:19:07,220 --> 00:19:08,400 con ella como si fuera una pila 457 00:19:08,400 --> 00:19:10,539 porque si ahora vemos lo que tiene linked list 458 00:19:10,539 --> 00:19:13,059 vemos que tiene un método que se llama push y otro que se llama pull 459 00:19:13,059 --> 00:19:18,640 Entonces, que tú quieres una pila, pues te haces un link en list de alumno y haces push pop y ya está, ¿vale? 460 00:19:19,039 --> 00:19:22,000 Que ya ves tú qué tontería, porque el push es el add al principio. 461 00:19:22,420 --> 00:19:26,400 Y ya ves tú qué tontería, porque el pop es el get cero, ¿vale? 462 00:19:26,440 --> 00:19:30,619 Pero los llama push y pop para hacerte a ti el guay que estoy usando una pila. 463 00:19:30,880 --> 00:19:34,980 Pero me da igual el push que el add first, que el pop que el get cero. 464 00:19:35,180 --> 00:19:37,000 Es lo mismo, ¿vale? 465 00:19:37,359 --> 00:19:40,119 El get cero no, el get del último, perdón, el get cero sería el primero y el último. 466 00:19:40,119 --> 00:19:42,119 El add, el get último. 467 00:19:43,059 --> 00:19:48,500 no, no, no 468 00:19:48,500 --> 00:19:49,740 el add por defecto es 469 00:19:49,740 --> 00:19:50,640 añades al final 470 00:19:50,640 --> 00:19:52,819 claro, por defecto al final 471 00:19:52,819 --> 00:19:55,099 el get cero sería el primero que metiste 472 00:19:55,099 --> 00:19:56,539 el primero que metiste de todo 473 00:19:56,539 --> 00:19:59,240 ¿vale? por eso el pop sería 474 00:19:59,240 --> 00:20:01,319 el get no del cero, sino del último 475 00:20:01,319 --> 00:20:02,279 ¿vale? 476 00:20:02,759 --> 00:20:04,380 bueno, pues eso en cuanto a linked list 477 00:20:04,380 --> 00:20:05,319 que linked list 478 00:20:05,319 --> 00:20:08,500 te ofrece métodos 479 00:20:08,500 --> 00:20:10,059 que no ofrece array list 480 00:20:10,059 --> 00:20:12,240 pues métodos como ese 481 00:20:12,240 --> 00:20:15,059 pues como el push, pop 482 00:20:15,059 --> 00:20:16,960 pues 483 00:20:16,960 --> 00:20:19,180 bueno, push y el objeto que sea 484 00:20:19,180 --> 00:20:20,480 claro, no hay falta de objeto 485 00:20:20,480 --> 00:20:22,920 te los ofrece para simular 486 00:20:22,920 --> 00:20:24,920 que estás con una pila, bueno pues que hay pequeñas 487 00:20:24,920 --> 00:20:26,619 diferencias en cuanto a los métodos que ofrecen 488 00:20:26,619 --> 00:20:29,000 pero que esencialmente son implementaciones 489 00:20:29,000 --> 00:20:31,359 de list, es decir, colecciones 490 00:20:31,359 --> 00:20:33,059 que una instancia, instancia 491 00:20:33,059 --> 00:20:35,180 mi lista, lista, me puedo hacer 492 00:20:35,180 --> 00:20:37,059 los add, los get, lo que sea 493 00:20:37,059 --> 00:20:38,180 me da igual que sea con esta 494 00:20:38,180 --> 00:20:39,240 como que push y el objeto 495 00:20:39,240 --> 00:20:41,700 o sea, cuando tú apilas un jersey 496 00:20:41,700 --> 00:20:42,619 tienes que darle el jersey 497 00:20:42,619 --> 00:20:45,099 sí, pero ya el método 498 00:20:45,099 --> 00:20:47,480 ah bueno, no, tienes que 499 00:20:47,480 --> 00:20:48,440 claro, cuando tú haces un jersey 500 00:20:48,440 --> 00:20:51,200 no, en el pop sí que no, el pop te lo devuelve 501 00:20:51,200 --> 00:20:52,319 el pop te lo da como un corrector 502 00:20:52,319 --> 00:20:54,019 y este te lo tienes que dar 503 00:20:54,019 --> 00:20:55,140 vale 504 00:20:55,140 --> 00:20:56,920 vale 505 00:20:56,920 --> 00:21:01,220 entonces 506 00:21:01,220 --> 00:21:03,599 ya que estamos, la pila está claro 507 00:21:03,599 --> 00:21:05,000 ¿qué es la cola? 508 00:21:06,119 --> 00:21:07,759 pues la cola es un nombre que recibe 509 00:21:07,759 --> 00:21:09,380 la estructura de toda la vida 510 00:21:09,380 --> 00:21:10,700 en la cual tú 511 00:21:10,700 --> 00:21:13,299 es, no el contrario 512 00:21:13,299 --> 00:21:15,400 pero bueno, parecía el contrario que la pila 513 00:21:15,400 --> 00:21:17,680 pues una cola es, te ofrece el método 514 00:21:17,680 --> 00:21:19,759 meter, pues pum, te metes 515 00:21:19,759 --> 00:21:21,140 y el sacar 516 00:21:21,140 --> 00:21:22,740 es al contrario que la pila 517 00:21:22,740 --> 00:21:26,240 sale siempre el primero que entró 518 00:21:26,240 --> 00:21:26,539 ¿vale? 519 00:21:27,220 --> 00:21:29,319 la pila funciona así 520 00:21:29,319 --> 00:21:35,480 claro, en la pila 521 00:21:35,480 --> 00:21:37,599 el primero que entra 522 00:21:37,599 --> 00:21:40,980 perdón, el último que entra 523 00:21:40,980 --> 00:21:42,859 con el push, el último que entra 524 00:21:42,859 --> 00:21:44,859 es el primero que sale 525 00:21:44,859 --> 00:21:46,880 el último que entra 526 00:21:46,880 --> 00:21:47,799 es el primero que sale 527 00:21:47,799 --> 00:21:49,660 pero la cola no es así 528 00:21:49,660 --> 00:21:51,500 la cola es así 529 00:21:51,500 --> 00:21:54,440 en la cola de la pescadería, efectivamente 530 00:21:54,440 --> 00:21:56,420 el primero que entró 531 00:21:56,420 --> 00:21:58,480 es el primero que sale 532 00:21:58,480 --> 00:21:59,599 ¿vale? 533 00:22:00,079 --> 00:22:02,319 la cola es la estructura normal de toda la vida 534 00:22:02,319 --> 00:22:03,500 cuando se van encolando 535 00:22:03,500 --> 00:22:06,240 entran por un lado y salen por el otro 536 00:22:06,240 --> 00:22:08,940 no 537 00:22:08,940 --> 00:22:11,839 porque no vamos a perder tiempo en eso 538 00:22:11,839 --> 00:22:14,019 ahora mismo me interesa el concepto 539 00:22:14,019 --> 00:22:15,599 todo eso es que está ya programado aquí 540 00:22:15,599 --> 00:22:17,140 lo que nosotros vamos a hacer ahora ya 541 00:22:17,140 --> 00:22:20,559 es usar estas clases, usarlas en diferentes ejercicios 542 00:22:20,559 --> 00:22:22,539 pero no podéis ir de aquí 543 00:22:22,539 --> 00:22:24,160 sin saber exactamente el término 544 00:22:24,160 --> 00:22:25,259 pila y cola que es obviamente 545 00:22:25,259 --> 00:22:28,480 y de colas os sonará 546 00:22:28,480 --> 00:22:30,319 esto, esto ya sí que de sistemas 547 00:22:30,319 --> 00:22:31,660 operativos o donde sea 548 00:22:31,660 --> 00:22:33,740 claro 549 00:22:33,740 --> 00:22:36,319 esto es, el último que entró es el primero 550 00:22:36,319 --> 00:22:38,200 que sale, que esta es la cola de toda la vida 551 00:22:38,200 --> 00:22:39,480 la de la pescadería 552 00:22:39,480 --> 00:22:42,099 no, no, perdón, la FIFO 553 00:22:42,099 --> 00:22:44,160 es la de la pescadería, el primero 554 00:22:44,160 --> 00:22:46,319 first in, first out, el primero que entró es el primero 555 00:22:46,319 --> 00:22:48,220 que sale, vamos todos en fila 556 00:22:48,220 --> 00:22:49,839 y según voy entrando y saliendo 557 00:22:49,839 --> 00:22:52,339 el LIFO es last in, first out 558 00:22:52,339 --> 00:22:54,099 el último que entró es el primero que sale 559 00:22:54,099 --> 00:22:56,279 este es, en realidad es una 560 00:22:56,279 --> 00:22:57,759 pila, una cola LIFO es una pila 561 00:22:57,759 --> 00:22:59,720 el último que entró es el primero que sale 562 00:22:59,720 --> 00:23:02,099 ¿vale? entonces 563 00:23:02,099 --> 00:23:04,000 las colas tanto lifos como fifo 564 00:23:04,000 --> 00:23:05,900 te ofrecen el método, meter chacal 565 00:23:05,900 --> 00:23:07,539 y ya está, entonces son 566 00:23:07,539 --> 00:23:10,000 implementaciones sencillas 567 00:23:10,000 --> 00:23:11,720 de colecciones para meter cosas 568 00:23:11,720 --> 00:23:13,859 pero siguiendo sus 569 00:23:13,859 --> 00:23:18,539 sus patrones de funcionamiento, que son muy sencillos 570 00:23:18,539 --> 00:23:21,819 sin embargo las listas 571 00:23:21,819 --> 00:23:23,960 ya son colecciones abiertas, tú metes 572 00:23:23,960 --> 00:23:25,339 en la posición que te dé la gana 573 00:23:25,339 --> 00:23:27,859 sacas la que quieras de todas las 574 00:23:27,859 --> 00:23:29,660 posiciones, haces lo que quieras 575 00:23:29,660 --> 00:23:30,960 son colecciones donde haces todo 576 00:23:30,960 --> 00:23:34,400 vale, bueno, pues lo de las listas 577 00:23:34,400 --> 00:23:37,579 ahora después 578 00:23:37,579 --> 00:23:39,440 en el ejercicio que empezasteis ayer 579 00:23:39,440 --> 00:23:41,299 y que continuaremos 580 00:23:41,299 --> 00:23:43,359 vamos a ver casi todos los detalles 581 00:23:43,359 --> 00:23:45,180 casi todos los detalles importantes 582 00:23:45,180 --> 00:23:46,240 de los métodos que ofrecen 583 00:23:46,240 --> 00:23:49,640 pero, ahora sí que vamos a parar 584 00:23:49,640 --> 00:23:50,400 dos minutitos 585 00:23:50,400 --> 00:23:53,000 porque tenemos otra posibilidad 586 00:23:53,000 --> 00:23:53,940 que es hacer conjunto 587 00:23:53,940 --> 00:23:56,579 las listas están muy bien y son estupendas 588 00:23:56,579 --> 00:23:58,180 pero 589 00:23:58,180 --> 00:24:01,740 hay veces que yo no necesito 590 00:24:01,740 --> 00:24:03,619 en cada elemento que meto 591 00:24:03,619 --> 00:24:05,079 tener la posición registrada 592 00:24:05,079 --> 00:24:05,880 no lo necesito 593 00:24:05,880 --> 00:24:08,500 tengo todos a mogollón y me da igual 594 00:24:08,500 --> 00:24:10,700 en qué orden los metí, en qué posición están 595 00:24:10,700 --> 00:24:11,259 me da lo mismo 596 00:24:11,259 --> 00:24:13,240 entonces si me da lo mismo 597 00:24:13,240 --> 00:24:16,079 puedo programar esa colección de forma más sencilla 598 00:24:16,079 --> 00:24:19,059 porque no tengo que llevar un registro 599 00:24:19,059 --> 00:24:19,660 de la posición 600 00:24:19,660 --> 00:24:22,759 bueno, pues esos son los conjuntos 601 00:24:22,759 --> 00:24:24,819 colecciones en las cuales 602 00:24:24,819 --> 00:24:26,579 no llevo un registro de la posición 603 00:24:26,579 --> 00:24:29,900 se tendrán que implementar de otra manera 604 00:24:29,900 --> 00:24:31,059 ¿vale? 605 00:24:31,480 --> 00:24:33,019 venga, pues paramos dos minutillos 606 00:24:33,019 --> 00:24:35,839 de nada, hombre 607 00:24:35,839 --> 00:24:36,579 son 10 euros