1 00:00:00,560 --> 00:00:02,720 Vamos a continuar con esto 2 00:00:02,720 --> 00:00:05,620 Vale, pues vamos a hacer antes que nada 3 00:00:05,620 --> 00:00:07,419 Un método simplemente 4 00:00:07,419 --> 00:00:08,880 Para llenarlo de datos 5 00:00:08,880 --> 00:00:10,939 De cualquier manera 6 00:00:10,939 --> 00:00:13,699 Para poder llenar la discoteca 7 00:00:13,699 --> 00:00:14,300 De cosas 8 00:00:14,300 --> 00:00:18,429 Y poder trabajar con ella 9 00:00:18,429 --> 00:00:21,250 Entonces, si nosotros tenemos aquí una discoteca mía 10 00:00:21,250 --> 00:00:22,050 Esta de aquí 11 00:00:22,050 --> 00:00:23,969 Ah, perdón 12 00:00:23,969 --> 00:00:35,350 Venga, pues le ponemos aquí 13 00:00:35,350 --> 00:00:38,670 Tenemos una 14 00:00:38,670 --> 00:00:39,329 Vale 15 00:00:39,329 --> 00:00:40,630 Entonces 16 00:00:40,630 --> 00:00:42,929 Vamos a hacer un método 17 00:00:42,929 --> 00:00:45,170 Para llenarla de datos 18 00:00:45,170 --> 00:00:46,030 Simplemente 19 00:00:46,030 --> 00:01:13,010 Vale 20 00:01:13,010 --> 00:01:15,469 Un método simplemente para ponerle datos 21 00:01:15,469 --> 00:01:16,750 Para luego poder trabajar con ella 22 00:01:16,750 --> 00:01:18,310 Y así no tenemos que pedirlos por teclado 23 00:01:18,310 --> 00:01:18,989 Que es un rollo 24 00:01:18,989 --> 00:01:22,290 Entonces la discoteca tiene el título y la lista de discos 25 00:01:22,290 --> 00:01:24,090 Pues venga 26 00:01:24,090 --> 00:01:25,549 Vamos simplemente a 27 00:01:25,549 --> 00:01:29,989 Le vamos a poner 28 00:01:29,989 --> 00:01:35,870 Su temática 29 00:01:35,870 --> 00:01:38,290 Pues su temática, cualquier cosa 30 00:01:38,290 --> 00:01:43,950 Ya, le vamos a añadir unos cuantos 31 00:01:43,950 --> 00:01:45,790 Discos y pistas 32 00:01:45,790 --> 00:01:47,010 Y ya está, vale 33 00:01:47,010 --> 00:01:47,870 Entonces 34 00:01:47,870 --> 00:02:02,079 Vale, pues vamos a hacer un CD 35 00:02:02,079 --> 00:02:03,680 Vamos a hacer un CD 36 00:02:03,680 --> 00:02:07,939 Vale, esto es un CD 37 00:02:07,939 --> 00:02:09,360 Vamos a hacer primero un CD 38 00:02:09,360 --> 00:02:11,860 Pues a este CD de aquí 39 00:02:11,860 --> 00:02:21,509 Como los Getty Set no los tengo en disco 40 00:02:21,509 --> 00:02:26,090 Pues a este CD le vamos a 41 00:02:26,090 --> 00:02:27,229 Uy 42 00:02:27,229 --> 00:02:40,259 Pues es título o cualquier uno 43 00:02:40,259 --> 00:02:41,539 Cualquier cosa 44 00:02:41,539 --> 00:02:49,030 Y ya le vamos a añadir 45 00:02:49,030 --> 00:02:49,789 Pistas 46 00:02:49,789 --> 00:02:53,270 Voy a hacer un constructor con parámetro en pista 47 00:02:53,270 --> 00:02:54,830 Para poder hacerlo más rápidamente 48 00:02:54,830 --> 00:03:07,759 Venga, pues a este CD 49 00:03:07,759 --> 00:03:08,939 Que se llama así 50 00:03:08,939 --> 00:03:27,099 Le vamos a añadir a sus pistas una nueva pista que se llame pista 1 y dure 1000 51 00:03:27,099 --> 00:03:39,800 Y le vamos a añadir otra pista 2 que dure 2000 52 00:03:39,800 --> 00:03:46,610 Solo para tener datos de cara a probar 53 00:03:46,610 --> 00:03:57,669 Y ahora este CD se lo pasamos a los discos 54 00:03:57,669 --> 00:04:00,930 Le añadimos el CD1 55 00:04:00,930 --> 00:04:05,409 Entonces este ad 56 00:04:05,409 --> 00:04:07,169 Estamos añadiendo a un set 57 00:04:07,169 --> 00:04:11,419 Y con este ad estamos añadiendo 58 00:04:11,419 --> 00:04:12,740 A un list, a este de aquí 59 00:04:12,740 --> 00:04:17,079 Y vamos a hacer un vinilo también 60 00:04:17,079 --> 00:04:30,670 Que el vinilo 61 00:04:30,670 --> 00:04:31,970 Pues tenga como título 62 00:04:31,970 --> 00:04:38,759 Y revoluciones 63 00:04:38,759 --> 00:04:40,079 Pues nada 64 00:04:40,079 --> 00:04:44,120 Y ahora lo mismo 65 00:04:44,120 --> 00:04:46,040 Le añadimos este 66 00:04:46,040 --> 00:05:01,620 Bueno, pues nada, estamos trabajando añadiendo cosas a colecciones 67 00:05:01,620 --> 00:05:02,540 No tiene mayor 68 00:05:02,540 --> 00:05:04,199 creamos el 69 00:05:04,199 --> 00:05:06,860 a este 70 00:05:06,860 --> 00:05:07,480 objeto 71 00:05:07,480 --> 00:05:10,560 vale, entonces de nuevo 72 00:05:10,560 --> 00:05:12,699 no olvidéis con todo esto lo del paso 73 00:05:12,699 --> 00:05:14,579 por valor y por referencia que veíamos 74 00:05:14,579 --> 00:05:16,699 a principio de curso, estamos 75 00:05:16,699 --> 00:05:18,920 pasando el parámetro por aquí 76 00:05:18,920 --> 00:05:20,779 y luego yo lo 77 00:05:20,779 --> 00:05:22,579 modifico y el método termina 78 00:05:22,579 --> 00:05:24,660 entonces uno le podría entrar la 79 00:05:24,660 --> 00:05:26,800 pregunta, oye 80 00:05:26,800 --> 00:05:28,180 yo he modificado esto 81 00:05:28,180 --> 00:05:30,439 en el parámetro 82 00:05:30,439 --> 00:05:33,120 de toda la vida, cuando se pasa un parámetro 83 00:05:33,120 --> 00:05:35,180 a un método, se pasa una copia 84 00:05:35,180 --> 00:05:37,019 claro, se pasa una copia 85 00:05:37,019 --> 00:05:38,699 pero es que esto es un objeto 86 00:05:38,699 --> 00:05:40,879 entonces como esto es una variable 87 00:05:40,879 --> 00:05:42,980 objeto, lo que esto es físicamente es una 88 00:05:42,980 --> 00:05:45,100 dirección de memoria, entonces hemos pasado 89 00:05:45,100 --> 00:05:46,459 la copia 90 00:05:46,459 --> 00:05:49,259 de la dirección de memoria donde está esta discoteca 91 00:05:49,259 --> 00:05:51,000 la copia, pero es 92 00:05:51,000 --> 00:05:52,860 una copia de una dirección, entonces 93 00:05:52,860 --> 00:05:54,980 es una copia de una dirección, con lo cual a través de la 94 00:05:54,980 --> 00:05:55,980 copia de la dirección 95 00:05:55,980 --> 00:05:59,180 estoy accediendo al mismo sitio 96 00:05:59,180 --> 00:06:01,740 Entonces todos los cambios que yo estoy haciendo 97 00:06:01,740 --> 00:06:02,560 En esta variable 98 00:06:02,560 --> 00:06:04,379 Todos estos cambios 99 00:06:04,379 --> 00:06:06,439 Se están haciendo en el objeto 100 00:06:06,439 --> 00:06:09,680 Cuando este método ha terminado 101 00:06:09,680 --> 00:06:11,759 Esta copia 102 00:06:11,759 --> 00:06:12,920 De la dirección de memoria 103 00:06:12,920 --> 00:06:14,199 Esta copia ha desaparecido 104 00:06:14,199 --> 00:06:16,680 Pero lo que yo he modificado a través de la dirección de memoria 105 00:06:16,680 --> 00:06:17,300 Se ha quedado 106 00:06:17,300 --> 00:06:22,139 Bueno, pues no vayáis olvidando esas cosas 107 00:06:22,139 --> 00:06:23,620 Vale, pues entonces llenar datos 108 00:06:23,620 --> 00:06:25,379 Uno podría ya llenar datos así 109 00:06:25,379 --> 00:06:33,079 Le pasamos este objeto y se acabó 110 00:06:33,079 --> 00:06:37,100 ¡Hala! Esta discoteca ya tiene datos 111 00:06:37,100 --> 00:06:37,500 Vale 112 00:06:37,500 --> 00:06:39,060 Bueno 113 00:06:39,060 --> 00:06:42,160 Pues qué funcionalidades podemos hacer 114 00:06:42,160 --> 00:06:43,399 Pues venga 115 00:06:43,399 --> 00:06:46,000 Por ejemplo 116 00:06:46,000 --> 00:06:49,639 Primera funcionalidad que vais a hacer ahora 117 00:06:49,639 --> 00:06:50,139 A ver 118 00:06:50,139 --> 00:06:53,660 Vamos a hacer una funcionalidad 119 00:06:53,660 --> 00:06:54,420 Que sea 120 00:06:54,420 --> 00:07:00,370 Devolver el 121 00:07:00,370 --> 00:07:01,170 CD 122 00:07:01,170 --> 00:07:03,129 Con más pistas 123 00:07:03,129 --> 00:07:10,899 No, vamos a incorporar más cosas 124 00:07:10,899 --> 00:07:12,860 con más duración 125 00:07:12,860 --> 00:07:26,839 vale, venga, os lo complico 126 00:07:26,839 --> 00:07:27,620 ya de partida 127 00:07:27,620 --> 00:07:30,740 private disco static 128 00:07:30,740 --> 00:07:32,779 vale, pues 129 00:07:32,779 --> 00:07:34,800 se le pasa un objeto discoteca 130 00:07:34,800 --> 00:07:36,040 se le pasa un objeto discoteca 131 00:07:36,040 --> 00:07:37,620 y tiene que devolver 132 00:07:37,620 --> 00:07:40,660 el CD, de todos los CDs 133 00:07:40,660 --> 00:07:42,879 que haya, si es que hay algunos, si no hay ningún CD 134 00:07:42,879 --> 00:07:43,600 devolver a nul 135 00:07:43,600 --> 00:07:47,000 pues tiene que devolver el CD 136 00:07:47,000 --> 00:07:48,259 el CD 137 00:07:48,259 --> 00:07:50,420 cuya suma de pistas 138 00:07:50,420 --> 00:07:52,139 dure más 139 00:07:52,139 --> 00:07:54,500 el que más dure en total, sumando la duración 140 00:07:54,500 --> 00:07:55,519 de cada una de sus pistas 141 00:07:55,519 --> 00:07:58,560 eso es lo que tiene que devolver, el valor de retorno 142 00:07:58,560 --> 00:08:00,560 es disco, no pasa nada porque un CD 143 00:08:00,560 --> 00:08:02,500 implementa disco, con lo cual 144 00:08:02,500 --> 00:08:04,459 aunque el valor del objeto de retorno 145 00:08:04,459 --> 00:08:05,459 va a ser un objeto CD 146 00:08:05,459 --> 00:08:09,120 esto está aquí perfectamente puesto 147 00:08:09,120 --> 00:08:14,160 pues venga 148 00:08:14,160 --> 00:08:15,439 entonces aquí, ¿qué habrá que hacer? 149 00:08:15,540 --> 00:08:17,199 pues es de nuevo el máximo de algo 150 00:08:17,199 --> 00:08:18,620 ¿el máximo de qué? 151 00:08:19,420 --> 00:08:22,399 de todos los CDs que estén en los discos de aquí 152 00:08:22,399 --> 00:08:24,379 entonces habrá que entrar en la colección 153 00:08:24,379 --> 00:08:25,339 de discos de este 154 00:08:25,339 --> 00:08:28,579 De todos ellos, sólo los que sean CD 155 00:08:28,579 --> 00:08:30,959 Hacer la suma de sus pistas 156 00:08:30,959 --> 00:08:32,100 Sólo de los que sean CD 157 00:08:32,100 --> 00:08:34,120 Para eso tenemos el InstaSoft, etcétera 158 00:08:34,120 --> 00:08:35,000 Sólo de los que sean CD 159 00:08:35,000 --> 00:08:37,840 Sumar las pistas 160 00:08:37,840 --> 00:08:39,700 Si supera el máximo, tengo nuevo máximo 161 00:08:39,700 --> 00:08:42,080 Un poquito lo de siempre 162 00:08:42,080 --> 00:08:44,519 Pero aplicado aquí a esta estructura 163 00:08:44,519 --> 00:08:48,059 Entonces hay que recorrer 164 00:08:48,059 --> 00:08:49,940 Tanto el list de discos 165 00:08:49,940 --> 00:08:51,980 Que tiene este, como luego el set 166 00:08:51,980 --> 00:08:54,120 De pistas para hacer la suma 167 00:08:54,120 --> 00:08:55,419 Hay que hacer dos recorridos 168 00:08:55,419 --> 00:08:56,279 Bueno, pues a ver 169 00:08:56,279 --> 00:09:06,250 Venga, pues vamos 170 00:09:06,250 --> 00:09:10,779 Perdón, que está pausado 171 00:09:10,779 --> 00:09:15,360 Vale, pues aquí es lo de siempre 172 00:09:15,360 --> 00:09:16,860 Siempre uno tiene que analizar bien 173 00:09:16,860 --> 00:09:18,220 Qué tiene que hacer e ir 174 00:09:18,220 --> 00:09:20,639 De lo grande a lo pequeño 175 00:09:20,639 --> 00:09:22,580 Entonces aquí lo grande que es 176 00:09:22,580 --> 00:09:24,480 Tengo que encontrar 177 00:09:24,480 --> 00:09:27,039 Un disco, un objeto disco 178 00:09:27,039 --> 00:09:29,080 Dentro de una colección de discos 179 00:09:29,080 --> 00:09:31,940 que es el que más cumple algo 180 00:09:31,940 --> 00:09:34,100 bueno, ese ya es un problema 181 00:09:34,100 --> 00:09:35,039 que tenemos aislado 182 00:09:35,039 --> 00:09:37,379 encontrar dentro de una colección de cosas 183 00:09:37,379 --> 00:09:38,919 el que más cumple algo 184 00:09:38,919 --> 00:09:40,299 ya es un problema que tenemos aislado 185 00:09:40,299 --> 00:09:41,340 y que se mete de la misma manera 186 00:09:41,340 --> 00:09:43,620 pues identificamos uno como 187 00:09:43,620 --> 00:09:46,500 el que más lo cumple en ese momento 188 00:09:46,500 --> 00:09:47,860 inicialmente 189 00:09:47,860 --> 00:09:50,820 y luego ya empezamos a recorrer 190 00:09:50,820 --> 00:09:51,740 todos los demás 191 00:09:51,740 --> 00:09:54,919 y en cuanto encontramos 192 00:09:54,919 --> 00:09:56,919 uno que lo supera lo actualizamos 193 00:09:56,919 --> 00:09:57,600 y ya está 194 00:09:57,600 --> 00:09:59,159 es el problema de siempre 195 00:09:59,159 --> 00:10:01,200 bueno, esa es la idea general 196 00:10:01,200 --> 00:10:03,399 es el problema que tenemos que resolver 197 00:10:03,399 --> 00:10:05,559 y cómo lo resolvemos, siempre así 198 00:10:05,559 --> 00:10:07,639 de partida 199 00:10:07,639 --> 00:10:09,539 uno es el máximo hasta ese momento 200 00:10:09,539 --> 00:10:11,840 recorro toda la colección 201 00:10:11,840 --> 00:10:13,899 para cada uno, supera el máximo 202 00:10:13,899 --> 00:10:15,980 actualiza máximo, el problema del máximo 203 00:10:15,980 --> 00:10:17,860 de siempre, y si es del mínimo, pues al revés 204 00:10:17,860 --> 00:10:19,700 bueno, pues aquí 205 00:10:19,700 --> 00:10:21,919 ahora ya que tenemos claro lo que tenemos que hacer 206 00:10:21,919 --> 00:10:24,179 empezamos a perfilar 207 00:10:24,179 --> 00:10:25,759 acotar nuestro problema 208 00:10:25,759 --> 00:10:29,100 ¿Qué colección es la que hay que recorrer 209 00:10:29,100 --> 00:10:30,820 Para ver cuál es el que más 210 00:10:30,820 --> 00:10:31,759 Cumple algo? 211 00:10:32,659 --> 00:10:34,759 Pues lo que hay que recorrer son los discos 212 00:10:34,759 --> 00:10:36,860 De este, los discos de este 213 00:10:36,860 --> 00:10:38,820 Bueno, los discos de este 214 00:10:38,820 --> 00:10:40,720 ¿Dónde están? Esto es una clase discoteca 215 00:10:40,720 --> 00:10:41,679 Pues habrá que irse aquí 216 00:10:41,679 --> 00:10:44,600 En una lista, vale, hay que recorrer 217 00:10:44,600 --> 00:10:46,379 Los discos de este de aquí, que es una lista 218 00:10:46,379 --> 00:10:48,379 Bueno, pues recorrer una lista 219 00:10:48,379 --> 00:10:49,220 Sabemos hacerlo 220 00:10:49,220 --> 00:10:52,779 ¿Vale? Entonces en este caso 221 00:10:52,779 --> 00:10:54,759 No vamos a eliminar nada de la lista 222 00:10:54,759 --> 00:10:56,480 Solo vamos a consultar para cada disco 223 00:10:56,480 --> 00:10:57,659 Cuánta duración tiene 224 00:10:57,659 --> 00:11:00,419 Entonces podemos recorrer con un for 225 00:11:00,419 --> 00:11:01,960 Y en este caso encima de índice 226 00:11:01,960 --> 00:11:02,940 Porque es una lista 227 00:11:02,940 --> 00:11:06,100 Bueno, pues en algún momento tendremos que hacer algo así 228 00:11:06,100 --> 00:11:10,419 ¿Vale? Vamos a recorrer esta lista 229 00:11:10,419 --> 00:11:20,519 Vamos a recorrer esta lista 230 00:11:20,519 --> 00:11:23,740 Para ver si cada uno de esos discos 231 00:11:23,740 --> 00:11:26,539 Supera al de mayor duración en ese momento 232 00:11:26,539 --> 00:11:29,940 Y si lo supera actualizo el máximo 233 00:11:29,940 --> 00:11:30,799 ¿Perdón? 234 00:11:30,799 --> 00:11:33,679 también valdría 235 00:11:33,679 --> 00:11:34,539 vale 236 00:11:34,539 --> 00:11:36,940 vale, entonces 237 00:11:36,940 --> 00:11:38,480 ¿por qué he cogido este 238 00:11:38,480 --> 00:11:40,879 a propósito? 239 00:11:41,659 --> 00:11:43,139 porque como es el máximo 240 00:11:43,139 --> 00:11:45,960 el máximo siempre lo solemos hacer 241 00:11:45,960 --> 00:11:47,779 inicializo el máximo 242 00:11:47,779 --> 00:11:49,720 iniciar al primero de todos 243 00:11:49,720 --> 00:11:51,419 y luego recorro los demás 244 00:11:51,419 --> 00:11:53,559 entonces con un for de índice 245 00:11:53,559 --> 00:11:55,519 puedes partir desde el segundo 246 00:11:55,519 --> 00:11:56,299 si te da la gana 247 00:11:56,299 --> 00:11:57,620 con un for each 248 00:11:57,620 --> 00:11:59,960 obligatoriamente el for each 249 00:11:59,960 --> 00:12:01,679 te recorre toda la colección siempre 250 00:12:01,679 --> 00:12:03,960 en un for each no puedes elegir pararte 251 00:12:03,960 --> 00:12:05,740 en la mitad, a menos que hagas un break 252 00:12:05,740 --> 00:12:06,179 claro 253 00:12:06,179 --> 00:12:09,720 entonces por eso he puesto esta a propósito 254 00:12:09,720 --> 00:12:11,659 vale, pues tenemos que hacer este recorrido 255 00:12:11,659 --> 00:12:14,019 bueno, pues entonces inicialmente nuestro resultado 256 00:12:14,019 --> 00:12:15,899 final va a ser el disco 257 00:12:15,899 --> 00:12:20,690 que tiene la duración máxima 258 00:12:20,690 --> 00:12:22,029 llamémoslo así, por ejemplo 259 00:12:22,029 --> 00:12:24,509 pues vamos a hacer, venga, como esto es una lista 260 00:12:24,509 --> 00:12:26,250 entonces como esto es una lista 261 00:12:26,250 --> 00:12:28,730 y en una lista tiene sentido decir el primero 262 00:12:28,730 --> 00:12:30,490 tiene sentido decir el primero 263 00:12:30,490 --> 00:12:33,289 pues el cd de duración máxima 264 00:12:33,289 --> 00:12:35,029 inicialmente que sea el primero 265 00:12:35,029 --> 00:12:37,110 de todos, inicialmente el primero de todos 266 00:12:37,110 --> 00:12:39,169 bueno, pues el primero de todos 267 00:12:39,169 --> 00:12:42,669 es este, ¿vale? 268 00:12:52,019 --> 00:12:53,720 bueno, sería más cómodo si hago 269 00:12:53,720 --> 00:12:55,559 el getFirst directamente porque es un linked list 270 00:12:55,559 --> 00:12:58,100 ¿no? como es un linked list 271 00:12:58,100 --> 00:12:59,919 puedo hacer, tiene este método 272 00:12:59,919 --> 00:13:01,960 pero recordad que el array list 273 00:13:01,960 --> 00:13:02,559 no lo tiene 274 00:13:02,559 --> 00:13:05,000 el array list no, entonces bueno 275 00:13:05,000 --> 00:13:08,080 ¿vale? pero bueno, si nos olvidamos de que el linked list 276 00:13:08,080 --> 00:13:10,419 te ofrece ese para simular lo de las colas 277 00:13:10,419 --> 00:13:12,299 no sé qué, nos olvidamos de esto 278 00:13:12,299 --> 00:13:13,460 no, yo quería 279 00:13:13,460 --> 00:13:19,100 vale, get 0, perdón 280 00:13:19,100 --> 00:13:22,669 este sería el primero 281 00:13:22,669 --> 00:13:23,610 de los discos 282 00:13:23,610 --> 00:13:26,710 vale, entonces uno aquí se podría 283 00:13:26,710 --> 00:13:28,789 plantear, vale, voy a 284 00:13:28,789 --> 00:13:29,990 recorrer los demás 285 00:13:29,990 --> 00:13:32,690 voy a recorrer los demás, en cuanto 286 00:13:32,690 --> 00:13:34,669 encuentre uno cuya duración es 287 00:13:34,669 --> 00:13:35,129 mayor 288 00:13:35,129 --> 00:13:38,590 que la que tiene el máximo hasta ese 289 00:13:38,590 --> 00:13:40,610 momento, tengo nuevo disco 290 00:13:40,610 --> 00:13:42,409 de duración máxima 291 00:13:42,409 --> 00:13:43,129 ¿Vale? 292 00:13:44,009 --> 00:13:45,450 Esa sería la primera 293 00:13:45,450 --> 00:13:47,970 Forma de plantear esto 294 00:13:47,970 --> 00:13:49,110 Lo que hemos hecho siempre 295 00:13:49,110 --> 00:13:50,850 Bueno, pues recorremos los discos 296 00:13:50,850 --> 00:13:52,009 Pero del primero ya paso 297 00:13:52,009 --> 00:13:55,090 El primero es este 298 00:13:55,090 --> 00:13:57,389 Y me pongo a recorrer los demás 299 00:13:57,389 --> 00:13:59,210 Vale, empiezo entonces desde el 1 300 00:13:59,210 --> 00:14:01,330 ¿Perdón? 301 00:14:09,970 --> 00:14:10,809 ¿Pero por qué? 302 00:14:12,409 --> 00:14:19,990 Y en este caso 303 00:14:19,990 --> 00:14:22,210 En este caso no sería por eso 304 00:14:22,210 --> 00:14:23,149 Porque espera, vamos a hacerlo 305 00:14:23,149 --> 00:14:24,870 Porque es que va a salir ahora esa necesidad 306 00:14:24,870 --> 00:14:28,490 Nosotros estamos haciendo por ahora 307 00:14:28,490 --> 00:14:30,090 Como haríamos el planteamiento normal 308 00:14:30,090 --> 00:14:31,970 Luego cuando vamos refinando 309 00:14:31,970 --> 00:14:33,470 Vale, entonces 310 00:14:33,470 --> 00:14:35,889 Aquí, ahora 311 00:14:35,889 --> 00:14:37,809 Seguimos iterando por los discos 312 00:14:37,809 --> 00:14:38,889 Y ahora yo hago, vale 313 00:14:38,889 --> 00:14:40,529 Si el disco 314 00:14:40,529 --> 00:14:45,389 es que cada caso es distinto 315 00:14:45,389 --> 00:14:46,669 aquí el problema no es que se anule 316 00:14:46,669 --> 00:14:47,509 el problema es otro 317 00:14:47,509 --> 00:14:51,190 si el disco de posición 318 00:14:51,190 --> 00:14:53,009 y discoteca 319 00:14:53,009 --> 00:14:54,590 .getdiscos 320 00:14:54,590 --> 00:14:57,190 .geti 321 00:14:57,190 --> 00:14:59,029 aquí habría que decir 322 00:14:59,029 --> 00:14:59,950 si este disco 323 00:14:59,950 --> 00:15:03,149 la suma 324 00:15:03,149 --> 00:15:05,070 de duración de sus pistas 325 00:15:05,070 --> 00:15:06,970 es mayor 326 00:15:06,970 --> 00:15:09,190 que la suma de la duración 327 00:15:09,190 --> 00:15:10,330 de las pistas 328 00:15:10,330 --> 00:15:11,870 de este 329 00:15:11,870 --> 00:15:14,070 entonces tengo un nuevo máximo 330 00:15:14,070 --> 00:15:14,629 ¿vale? 331 00:15:16,940 --> 00:15:18,580 claro, pero aquí me viene el problema 332 00:15:18,580 --> 00:15:22,279 esto de aquí 333 00:15:22,279 --> 00:15:25,440 puede ser un CD 334 00:15:25,440 --> 00:15:27,080 o puede ser un vinilo 335 00:15:27,080 --> 00:15:29,019 entonces, aquí 336 00:15:29,019 --> 00:15:31,659 solo tengo que tener en cuenta 337 00:15:31,659 --> 00:15:33,080 solo los que sean CD 338 00:15:33,080 --> 00:15:34,480 los que sean vinilo, ¿no? 339 00:15:36,000 --> 00:15:37,460 entonces, esto será 340 00:15:37,460 --> 00:15:39,879 si este disco de aquí 341 00:15:39,879 --> 00:15:41,159 es CD 342 00:15:41,159 --> 00:15:42,940 solo en ese caso 343 00:15:42,940 --> 00:15:45,019 si es CD, ahora ya miramos 344 00:15:45,019 --> 00:15:46,399 la duración de sus pistas 345 00:15:46,399 --> 00:15:50,379 ¿verdad? entonces aquí el primer problema 346 00:15:50,379 --> 00:15:52,080 que nos encontramos es este 347 00:15:52,080 --> 00:15:54,039 de discos.size, perdón 348 00:15:54,039 --> 00:15:56,059 aquí se me ha olvidado el size, vale 349 00:15:56,059 --> 00:15:56,919 entonces 350 00:15:56,919 --> 00:16:00,059 este puede ser 351 00:16:00,059 --> 00:16:01,860 vinilo o puede ser CD 352 00:16:01,860 --> 00:16:04,299 solo me interesa tener en cuenta los 353 00:16:04,299 --> 00:16:07,460 CD, entonces 354 00:16:07,460 --> 00:16:09,759 si este es 355 00:16:09,759 --> 00:16:11,720 CD, si este es 356 00:16:11,720 --> 00:16:13,759 CD, solo en ese 357 00:16:13,759 --> 00:16:15,799 caso, lo primero que tenemos 358 00:16:15,799 --> 00:16:17,779 que hacer es calcular 359 00:16:17,779 --> 00:16:19,779 la suma de la duración de sus pistas 360 00:16:19,779 --> 00:16:21,379 calcular la suma 361 00:16:21,379 --> 00:16:23,799 para ver si la suma de la duración de sus pistas 362 00:16:23,799 --> 00:16:25,700 es mayor que la suma de la duración 363 00:16:25,700 --> 00:16:26,659 de las pistas de este 364 00:16:26,659 --> 00:16:29,580 ¿vale? entonces 365 00:16:29,580 --> 00:16:31,580 bueno, pues si este D 366 00:16:31,580 --> 00:16:33,659 vamos a hacer la suma de la duración 367 00:16:33,659 --> 00:16:35,679 de sus pistas, es lo primero que tenemos que hacer 368 00:16:35,679 --> 00:16:37,700 vale, lo podríamos hacer con un método 369 00:16:37,700 --> 00:16:40,080 aparte, pero para no sacar tantos métodos 370 00:16:40,080 --> 00:16:41,960 vamos a hacer la suma 371 00:16:41,960 --> 00:16:43,399 de la duración de sus pistas 372 00:16:43,399 --> 00:16:45,080 suma igual a cero 373 00:16:45,080 --> 00:16:48,039 Recorremos todas las pistas de este 374 00:16:48,039 --> 00:16:49,360 Vale 375 00:16:49,360 --> 00:16:51,419 Pues entonces 376 00:16:51,419 --> 00:16:54,039 Esto como es un CD 377 00:16:54,039 --> 00:16:55,600 Este como es un CD 378 00:16:55,600 --> 00:16:57,379 Como es un CD 379 00:16:57,379 --> 00:17:00,639 El CD tiene un set de pistas 380 00:17:00,639 --> 00:17:02,740 Un set de pistas dentro 381 00:17:02,740 --> 00:17:03,700 ¿Verdad? 382 00:17:04,019 --> 00:17:05,740 Pues vamos a recorrer las pistas 383 00:17:05,740 --> 00:17:08,220 Y van para ir sumando en la suma acumulativa 384 00:17:08,220 --> 00:17:10,180 Para ir sumando en la suma acumulativa 385 00:17:10,180 --> 00:17:12,500 La duración de cada pista 386 00:17:12,500 --> 00:17:15,319 La duración de cada pista 387 00:17:15,319 --> 00:17:15,940 Esta 388 00:17:15,940 --> 00:17:17,900 Entonces, aquí uno haría 389 00:17:17,900 --> 00:17:19,500 Vale, pues venga, voy a recorrer 390 00:17:19,500 --> 00:17:22,079 Todas las pistas de 391 00:17:22,079 --> 00:17:25,359 Este CD de aquí 392 00:17:25,359 --> 00:17:26,740 Este 393 00:17:26,740 --> 00:17:33,119 Trollube.get 394 00:17:33,119 --> 00:17:34,539 Pistas 395 00:17:34,539 --> 00:17:38,480 Esto es lo que uno en principio 396 00:17:38,480 --> 00:17:39,720 Querría hacer, ¿verdad? 397 00:17:39,799 --> 00:17:40,720 Todas las pistas 398 00:17:40,720 --> 00:17:42,240 Ahora ya veremos ese rojo 399 00:17:42,240 --> 00:17:42,920 Y ahora hacer 400 00:17:42,920 --> 00:17:45,579 Suma más igual 401 00:17:45,579 --> 00:17:49,660 pista.getDuración 402 00:17:49,660 --> 00:17:55,339 ¿Vale? Es decir, esto de aquí es una suma acumulativa 403 00:17:55,339 --> 00:18:00,480 que va recorriendo 404 00:18:00,480 --> 00:18:04,720 todas las pistas del conjunto de pistas de este 405 00:18:04,720 --> 00:18:10,640 CD, ¿vale? Este es el CD, estas son sus pistas 406 00:18:10,640 --> 00:18:14,819 luego este forEach va recorriendo todas y cada una de las pistas 407 00:18:14,819 --> 00:18:18,940 del conjunto de pistas de este CD y va sumando 408 00:18:18,940 --> 00:18:21,259 a la suma acumulativa la duración de cada una de ellas 409 00:18:21,259 --> 00:18:23,240 ¿vale? luego esto de aquí 410 00:18:23,240 --> 00:18:25,079 es solo para obtener 411 00:18:25,079 --> 00:18:27,099 lo que suman las pistas de este CD 412 00:18:27,099 --> 00:18:29,180 y ver ya si supera 413 00:18:29,180 --> 00:18:29,660 al máximo 414 00:18:29,660 --> 00:18:33,299 pero efectivamente aquí se nos ha puesto 415 00:18:33,299 --> 00:18:34,099 algo en rojillo 416 00:18:34,099 --> 00:18:35,980 sin mirar esto 417 00:18:35,980 --> 00:18:38,619 sin mirar esto 418 00:18:38,619 --> 00:18:41,019 ¿qué mensaje nos estará diciendo 419 00:18:41,019 --> 00:18:41,960 ese rojo de ahí? 420 00:18:52,440 --> 00:18:53,000 efectivamente 421 00:18:53,000 --> 00:18:54,460 nos está diciendo, ojo 422 00:18:54,460 --> 00:18:56,819 discoteca get discos get i 423 00:18:56,819 --> 00:18:58,619 está declarado 424 00:18:58,619 --> 00:19:00,660 es el problema de la herencia 425 00:19:00,660 --> 00:19:02,099 de toda la vida de interfaces 426 00:19:02,099 --> 00:19:04,720 está declarado como disco 427 00:19:04,720 --> 00:19:07,000 porque esto es un elemento 428 00:19:07,000 --> 00:19:08,519 de la colección getDiscos 429 00:19:08,519 --> 00:19:10,839 y la colección getDiscos 430 00:19:10,839 --> 00:19:12,460 es una colección de disco 431 00:19:12,460 --> 00:19:13,619 esta 432 00:19:13,619 --> 00:19:16,119 con lo cual me dice, perdona 433 00:19:16,119 --> 00:19:18,880 yo no tengo ninguna seguridad 434 00:19:18,880 --> 00:19:20,660 o sea, no es que no tenga ninguna seguridad 435 00:19:20,660 --> 00:19:22,579 tú me has declarado eso 436 00:19:22,579 --> 00:19:23,720 como tipo disco 437 00:19:23,720 --> 00:19:25,900 y como me lo has declarado como tipo disco 438 00:19:25,900 --> 00:19:28,259 no puedes llamar a ningún método 439 00:19:28,259 --> 00:19:29,079 que no esté en disco 440 00:19:29,079 --> 00:19:31,220 ¿en disco hay algún getPistas? 441 00:19:31,859 --> 00:19:33,660 no, en disco hay reproducir 442 00:19:33,660 --> 00:19:36,299 luego lo único que podemos llamar 443 00:19:36,299 --> 00:19:38,160 aquí es a reproducir, no podemos llamar 444 00:19:38,160 --> 00:19:40,079 a nada más, dices ya, pero hombre 445 00:19:40,079 --> 00:19:42,059 yo quiero llamar a getPistas 446 00:19:42,059 --> 00:19:44,119 porque aunque te lo declare como disco 447 00:19:44,119 --> 00:19:45,799 sé que es un CD 448 00:19:45,799 --> 00:19:47,519 porque lo acabo de comprobar 449 00:19:47,519 --> 00:19:49,819 lo acabo de comprobar, estoy dentro de este if 450 00:19:49,819 --> 00:19:51,839 ¿vale? entonces 451 00:19:51,839 --> 00:19:53,319 ¿cómo arreglábamos esto? 452 00:19:54,559 --> 00:19:55,160 ¿qué hacíamos? 453 00:19:55,900 --> 00:20:14,519 con un casting, ¿vale?, con un casting, ¿vale?, pues entonces, yo sin ningún miedo, hago un casting a CD, ¿de quién?, de ese objeto, de este, sin ningún miedo, hago un casting a CD de este, 454 00:20:14,519 --> 00:20:25,420 porque este, es de tipo CD, porque lo he comprobado antes con el instant off, entonces, como es de tipo CD, me hago el casting a CD, tan feliz, 455 00:20:25,900 --> 00:20:41,279 Y ahora ya, al haber hecho al casting al CD tan feliz, porque sé que no voy a cagarla, porque se ha instanciado como CD, ahora ya dice, ah, vale, me acabas de convertir a CD, ahora ya sí que te dejo llamar al método de CD, de business, ¿vale? 456 00:20:41,279 --> 00:20:47,440 ¿Vale? Bueno, pues entonces 457 00:20:47,440 --> 00:20:49,599 Ya tenemos la suma 458 00:20:49,599 --> 00:20:52,299 De todos los 459 00:20:52,299 --> 00:20:55,880 De todas las pistas 460 00:20:55,880 --> 00:20:57,500 De este, y ahora ya habría que ver 461 00:20:57,500 --> 00:20:58,839 Si supera 462 00:20:58,839 --> 00:21:01,200 A la suma de pistas 463 00:21:01,200 --> 00:21:02,940 Del que es máximo hasta ese momento 464 00:21:02,940 --> 00:21:05,359 ¿Vale? 465 00:21:05,420 --> 00:21:06,359 De CD máximo 466 00:21:06,359 --> 00:21:08,619 ¿Vale? 467 00:21:08,920 --> 00:21:11,200 Y aquí es donde nos viene el problema que dices tú 468 00:21:11,200 --> 00:21:15,700 aquí habría que hacer 469 00:21:15,700 --> 00:21:18,380 ¿esta suma de pistas es mayor 470 00:21:18,380 --> 00:21:20,279 que la suma de pistas 471 00:21:20,279 --> 00:21:24,680 del que es máximo hasta ese momento? 472 00:21:26,059 --> 00:21:26,700 pues ojo 473 00:21:26,700 --> 00:21:30,099 hemos inicializado este al primero de la lista 474 00:21:30,099 --> 00:21:32,220 pero espérate 475 00:21:32,220 --> 00:21:35,079 es que el primero de la lista no tiene por qué ser un CD 476 00:21:35,079 --> 00:21:37,180 a lo mejor en mi colección de discos tengo 477 00:21:37,180 --> 00:21:40,880 tres vinilos, un CD, otros dos vinilos, un CD 478 00:21:40,880 --> 00:21:43,460 no, no, no, quiero inicializarlo 479 00:21:43,460 --> 00:21:44,759 al primero que sea cd 480 00:21:44,759 --> 00:21:46,660 al primero que sea cd 481 00:21:46,660 --> 00:21:48,339 lo quiero inicializar, ojo 482 00:21:48,339 --> 00:21:49,900 vale 483 00:21:49,900 --> 00:21:53,240 entonces aquí en este caso 484 00:21:53,240 --> 00:21:55,079 vamos a decir, no, espérate 485 00:21:55,079 --> 00:21:57,400 no lo inicialices al primero, ve avanzando 486 00:21:57,400 --> 00:21:59,359 con un while hasta que llegues a uno 487 00:21:59,359 --> 00:22:01,420 que sea cd y cuando sea cero 488 00:22:01,420 --> 00:22:02,220 inicializas a ese 489 00:22:02,220 --> 00:22:04,819 el ejercicio este que estabas mirando tú 490 00:22:04,819 --> 00:22:06,720 era una situación parecida 491 00:22:06,720 --> 00:22:08,720 pero ahí el problema era otro, que teníamos que inicializarlo 492 00:22:08,720 --> 00:22:09,779 al primero que no fuera null 493 00:22:09,779 --> 00:22:14,480 Bueno, pues aquí podemos hacer 494 00:22:14,480 --> 00:22:14,819 Oye 495 00:22:14,819 --> 00:22:17,400 Aquí, BMA 496 00:22:17,400 --> 00:22:18,640 Mientras 497 00:22:18,640 --> 00:22:21,019 Aquí podemos hacer 498 00:22:21,019 --> 00:22:38,140 Podemos hacer esto 499 00:22:38,140 --> 00:22:39,839 Un int i 500 00:22:39,839 --> 00:22:42,539 Iniciamos a 0 501 00:22:42,539 --> 00:22:44,200 Y mientras esto 502 00:22:44,200 --> 00:22:51,109 Get i 503 00:22:51,109 --> 00:22:58,109 Mientras no sea instancia 504 00:22:58,109 --> 00:22:58,650 De cd 505 00:22:58,650 --> 00:23:02,349 Mientras no sea 506 00:23:02,349 --> 00:23:03,809 instancia de cd 507 00:23:03,809 --> 00:23:07,920 avanzas, a ver he puesto 508 00:23:07,920 --> 00:23:10,039 bien, no, el paréntesis este iría 509 00:23:10,039 --> 00:23:10,440 aquí 510 00:23:10,440 --> 00:23:12,940 ahora si 511 00:23:12,940 --> 00:23:24,890 vale 512 00:23:24,890 --> 00:23:28,440 empezamos con i igual a 0 513 00:23:28,440 --> 00:23:31,220 mientras no sea 514 00:23:31,220 --> 00:23:32,480 una instancia de cd 515 00:23:32,480 --> 00:23:34,160 lo vas avanzando 516 00:23:34,160 --> 00:23:37,440 mientras no sea una instancia de cd lo vas avanzando 517 00:23:37,440 --> 00:23:39,160 y bueno 518 00:23:39,160 --> 00:23:41,019 voy a usar posición porque 519 00:23:41,019 --> 00:23:42,299 el i luego si no abajo 520 00:23:42,299 --> 00:23:52,640 ahora la condición es otra, no es 521 00:23:52,640 --> 00:23:54,200 no sea null, no es no ser null 522 00:23:54,200 --> 00:23:56,559 sino, mientras no sea 523 00:23:56,559 --> 00:23:58,259 una instancia de cd 524 00:23:58,259 --> 00:23:59,880 avanza, avanza, avanza 525 00:23:59,880 --> 00:24:01,799 pos se acabará parando 526 00:24:01,799 --> 00:24:04,380 cuando ya dentro de la lista 527 00:24:04,380 --> 00:24:06,720 ha encontrado una instancia de cd, pos se acabará 528 00:24:06,720 --> 00:24:08,400 parando ahí, vale, pues entonces 529 00:24:08,400 --> 00:24:09,559 ahí ya podemos tener 530 00:24:09,559 --> 00:24:12,700 el máximo 531 00:24:12,700 --> 00:24:28,950 vale, entonces este es 532 00:24:28,950 --> 00:24:31,109 el primer disco de la lista 533 00:24:31,109 --> 00:24:31,970 el primero 534 00:24:31,970 --> 00:24:34,130 que es cd 535 00:24:34,130 --> 00:24:36,509 el primero que cumple la condición de ser cd 536 00:24:36,509 --> 00:24:38,069 el primero que cumple la condición de ser cd 537 00:24:38,069 --> 00:24:39,230 y ahora ya 538 00:24:39,230 --> 00:24:41,269 en lugar de 1 539 00:24:41,269 --> 00:24:44,670 empezamos con los consecutivos a él 540 00:24:44,670 --> 00:24:46,990 empezamos con los consecutivos a él 541 00:24:46,990 --> 00:24:48,410 para cada uno de ellos 542 00:24:48,410 --> 00:24:50,490 si no son cd, nada, no compruebo nada 543 00:24:50,490 --> 00:24:51,829 si son cd 544 00:24:51,829 --> 00:24:53,950 hago la suma 545 00:24:53,950 --> 00:24:56,529 compruebo a ver si es mayor que la suma 546 00:24:56,529 --> 00:24:58,049 del máximo hasta ese momento 547 00:24:58,049 --> 00:25:00,430 si es mayor, tengo nuevo cd máximo 548 00:25:00,430 --> 00:25:01,349 y ya está 549 00:25:01,349 --> 00:25:03,289 y ya habríamos terminado 550 00:25:03,289 --> 00:25:06,089 entonces, vale, he mezclado 551 00:25:06,089 --> 00:25:07,269 Muchas cosas 552 00:25:07,269 --> 00:25:09,890 A propósito 553 00:25:09,890 --> 00:25:11,210 Para que no os perdáis 554 00:25:11,210 --> 00:25:13,450 Estas son las cosas que de alguna manera 555 00:25:13,450 --> 00:25:15,710 Tenéis que ir teniendo sueltas 556 00:25:15,710 --> 00:25:20,900 ¿Pero qué compararías? 557 00:25:20,960 --> 00:25:22,079 ¿El compare tú de qué clase? 558 00:25:34,180 --> 00:25:35,980 Vale, pero no hace falta 559 00:25:35,980 --> 00:25:37,240 O sea, compare tú de double 560 00:25:37,240 --> 00:25:38,619 Ya es directamente menor o mayor 561 00:25:38,619 --> 00:25:43,099 Bueno, pero primero tenemos que hacer 562 00:25:43,099 --> 00:25:44,019 La suma de las pistas 563 00:25:44,019 --> 00:25:45,099 Primero la de uno y la del otro 564 00:25:45,099 --> 00:25:46,500 Luego ya menor y mayor 565 00:25:46,500 --> 00:25:47,940 No hace falta un compare tú 566 00:25:47,940 --> 00:25:50,319 Porque los números ya se comparan con menor que mayor que 567 00:25:50,319 --> 00:25:54,359 Entonces ahora 568 00:25:54,359 --> 00:25:55,680 Vamos a hacer 569 00:25:55,680 --> 00:25:59,460 La suma del que tiene la duración máxima 570 00:25:59,460 --> 00:26:00,160 Hasta ese momento 571 00:26:00,160 --> 00:26:02,160 La suma del que tiene la duración máxima 572 00:26:02,160 --> 00:26:04,220 La podemos dejar aquí calculadita también ya 573 00:26:04,220 --> 00:26:05,440 Para no tener que volverla así 574 00:26:05,440 --> 00:26:07,019 No tener que volver a hacerla así 575 00:26:07,019 --> 00:26:09,599 Entonces aquí podríamos hacer 576 00:26:09,599 --> 00:26:11,559 Insuma máxima 577 00:26:11,559 --> 00:26:13,900 Y con este método 578 00:26:13,900 --> 00:26:15,799 Revisándolo 579 00:26:15,799 --> 00:26:17,259 Ya nos vamos ¿Vale? 580 00:26:17,559 --> 00:26:46,500 Pues volveríamos a hacer esto, getPost sería aquí, getPistas, suma máxima, vale, entonces, en esta primera inicialización, hemos obtenido el primer CD de la lista, el primer CD, y ahora lo que suman, las pistas suyas, lo que suman las pistas suyas, vale. 581 00:26:46,500 --> 00:26:48,420 Ahora ya nos vamos con los demás 582 00:26:48,420 --> 00:26:51,420 Si alguno de ellos 583 00:26:51,420 --> 00:26:53,019 De los que este de 584 00:26:53,019 --> 00:26:55,519 La suma de sus pistas 585 00:26:55,519 --> 00:26:56,660 Que la hemos calculado aquí 586 00:26:56,660 --> 00:26:58,779 La suma de sus pistas es mayor 587 00:26:58,779 --> 00:27:01,579 Que la suma máxima hasta ese momento 588 00:27:01,579 --> 00:27:03,500 Pues entonces 589 00:27:03,500 --> 00:27:04,480 Tengo nuevo 590 00:27:04,480 --> 00:27:06,160 C de máximo 591 00:27:06,160 --> 00:27:08,240 Tengo nuevo C de máximo 592 00:27:08,240 --> 00:27:09,720 Que es este 593 00:27:09,720 --> 00:27:12,000 Este de aquí 594 00:27:12,000 --> 00:27:19,460 Y tengo nueva suma máxima 595 00:27:20,460 --> 00:27:21,900 que es esta 596 00:27:21,900 --> 00:27:25,500 y ya la habríamos terminado 597 00:27:25,500 --> 00:27:28,259 nos faltaría devolver, claro 598 00:27:28,259 --> 00:27:30,480 como valor de retorno, ahora lo revisamos entero 599 00:27:30,480 --> 00:27:32,660 nos faltaría 600 00:27:32,660 --> 00:27:34,180 devolver como valor de retorno 601 00:27:34,180 --> 00:27:36,579 return cd máximo 602 00:27:36,579 --> 00:27:37,859 vale 603 00:27:37,859 --> 00:27:39,940 entonces aquí 604 00:27:39,940 --> 00:27:42,539 por el tema de la herencia, por el tema de eso 605 00:27:42,539 --> 00:27:43,480 esto 606 00:27:43,480 --> 00:27:45,779 se ha ido complicando, claro 607 00:27:45,779 --> 00:27:47,960 pero la idea es 608 00:27:47,960 --> 00:27:49,920 primero uno tiene que pensar que tiene que hacer 609 00:27:49,920 --> 00:27:52,519 Aquí tengo que calcular dentro de una colección de discos 610 00:27:52,519 --> 00:27:53,579 El que más cumple algo 611 00:27:53,579 --> 00:27:56,000 Vale, pues ya está, eso siempre funciona de la misma manera 612 00:27:56,000 --> 00:27:57,900 El primero de todos 613 00:27:57,900 --> 00:28:00,160 Es el máximo inicial 614 00:28:00,160 --> 00:28:01,500 Recorro los demás 615 00:28:01,500 --> 00:28:03,859 Y si superan al máximo, tengo nuevo máximo 616 00:28:03,859 --> 00:28:05,859 Bueno, cuando hemos empezado a refinar eso 617 00:28:05,859 --> 00:28:08,519 Nos hemos encontrado los problemas específicos 618 00:28:08,519 --> 00:28:09,099 De cada caso 619 00:28:09,099 --> 00:28:11,259 Y ya los hemos resuelto así 620 00:28:11,259 --> 00:28:12,859 Primero, ¿qué hemos hecho? 621 00:28:14,019 --> 00:28:15,559 Encontrar la posición 622 00:28:15,559 --> 00:28:17,700 Del primer elemento de la lista 623 00:28:17,700 --> 00:28:19,680 Esta, del primer elemento que es CD 624 00:28:19,680 --> 00:28:21,940 porque son los únicos que vamos a tener en cuenta 625 00:28:21,940 --> 00:28:24,920 vale, pues ya está, ya la hemos encontrado 626 00:28:24,920 --> 00:28:26,940 esta es la posición del primero que es CD 627 00:28:26,940 --> 00:28:29,019 bueno, pues ahora 628 00:28:29,019 --> 00:28:33,119 ese se ha convertido 629 00:28:33,119 --> 00:28:34,559 en el máximo inicial 630 00:28:34,559 --> 00:28:37,039 y la suma de sus pistas es esta 631 00:28:37,039 --> 00:28:39,440 máximo inicial 632 00:28:39,440 --> 00:28:41,200 con la suma de sus pistas, vale 633 00:28:41,200 --> 00:28:43,420 ahora, ya sí que nos hemos 634 00:28:43,420 --> 00:28:44,319 ido a la colección 635 00:28:44,319 --> 00:28:47,180 para empezar a recorrer los que nos faltan 636 00:28:47,180 --> 00:28:48,619 desde pos más uno hasta el final 637 00:28:48,619 --> 00:28:50,720 para cada uno de ellos 638 00:28:50,720 --> 00:28:53,740 si son CD, porque si no los ignoramos 639 00:28:53,740 --> 00:28:55,039 si son CD 640 00:28:55,039 --> 00:28:57,480 sumamos la duración de sus pistas 641 00:28:57,480 --> 00:28:59,220 la sumamos, para lo cual 642 00:28:59,220 --> 00:29:00,660 hemos tenido que hacer el casting, etc. 643 00:29:00,660 --> 00:29:01,440 la sumamos 644 00:29:01,440 --> 00:29:04,700 si la suma de sus pistas es mayor que la que es 645 00:29:04,700 --> 00:29:05,819 máxima hasta ese momento 646 00:29:05,819 --> 00:29:08,680 tengo nueva duración máxima 647 00:29:08,680 --> 00:29:10,240 y nuevo CD máximo y ya está 648 00:29:10,240 --> 00:29:12,559 cuando el for ha terminado tengo ya 649 00:29:12,559 --> 00:29:14,319 el valor final 650 00:29:14,319 --> 00:29:16,019 que devuelvo y se acabó 651 00:29:16,019 --> 00:29:21,740 ¿vale? 652 00:29:24,259 --> 00:29:24,920 bueno, pues 653 00:29:24,920 --> 00:29:26,619 con este proyecto 654 00:29:26,619 --> 00:29:28,519 es un ejemplo de mezclar 655 00:29:28,519 --> 00:29:30,940 varias cosas y estos son un poco los conceptos 656 00:29:30,940 --> 00:29:32,960 que tenéis que tener claros, aparte de lo 657 00:29:32,960 --> 00:29:35,099 de programación básico de toda la vida 658 00:29:35,099 --> 00:29:36,640 el uso de las sentencias de control 659 00:29:36,640 --> 00:29:39,059 pues eso de sumar, de contar 660 00:29:39,059 --> 00:29:41,099 de los máximos, de los mínimos, aparte de 661 00:29:41,099 --> 00:29:42,619 todo eso, luego ya 662 00:29:42,619 --> 00:29:45,200 los temas de herencia, interfaces 663 00:29:45,200 --> 00:29:46,480 y el polimorfismo 664 00:29:46,480 --> 00:29:48,940 es decir 665 00:29:48,940 --> 00:29:50,539 sobre escribir métodos 666 00:29:50,539 --> 00:29:52,839 que un mismo método funciona 667 00:29:52,839 --> 00:29:54,519 de diferente manera en función de 668 00:29:54,519 --> 00:29:55,799 El objeto que lo llama 669 00:29:55,799 --> 00:29:57,160 Etcétera 670 00:29:57,160 --> 00:29:59,980 Todo esto de la herencia 671 00:29:59,980 --> 00:30:01,539 Y luego ya el manejo de las colecciones 672 00:30:01,539 --> 00:30:03,160 ¿Vale? 673 00:30:04,819 --> 00:30:06,339 Pues ya está 674 00:30:06,339 --> 00:30:08,420 Vamos a parar aquí 675 00:30:08,420 --> 00:30:09,299 Si no tenéis