1 00:00:01,520 --> 00:00:18,399 Tenemos que localizar en nuestra colección de aquí arriba, que es una lista, un objeto de todos los que tiene papa, papa, tiene este, tiene este, tiene este, tiene este, tenemos que localizar uno cuyo número de matrícula sea igual que este. 2 00:00:19,320 --> 00:00:19,760 ¿Vale? 3 00:00:20,920 --> 00:00:23,179 Bueno, pues exactamente igual que hacíamos en un array. 4 00:00:24,399 --> 00:00:24,839 Recorremos. 5 00:00:26,039 --> 00:00:29,859 Me voy con este, ahora este, ahora este, ahora este y con cada uno de ellos. 6 00:00:29,859 --> 00:00:31,960 su número de matrículas igual que este 7 00:00:31,960 --> 00:00:33,479 su número de matrículas igual que este 8 00:00:33,479 --> 00:00:35,060 en cuanto encuentre uno que lo es 9 00:00:35,060 --> 00:00:36,799 ya tengo al alumno que busco 10 00:00:36,799 --> 00:00:39,159 construyo el string con sus datos 11 00:00:39,159 --> 00:00:39,979 y fuera 12 00:00:39,979 --> 00:00:43,000 entonces tengo que recorrer 13 00:00:43,000 --> 00:00:46,020 recorrer la colección 14 00:00:46,020 --> 00:00:47,399 en este caso la lista 15 00:00:47,399 --> 00:00:48,479 recorrerla 16 00:00:48,479 --> 00:00:51,079 y cuando encuentre 17 00:00:51,079 --> 00:00:53,399 una posición en la que hay un alumno 18 00:00:53,399 --> 00:00:54,840 con ese número ya lo tengo 19 00:00:54,840 --> 00:00:57,500 exactamente igual que hacíamos con los arrays 20 00:00:57,500 --> 00:00:58,820 pero ahora no vamos a recorrer un array 21 00:00:58,820 --> 00:00:59,859 vamos a recorrer una lista 22 00:00:59,859 --> 00:01:02,299 bueno, pues recorrer una lista 23 00:01:02,299 --> 00:01:04,400 ya lo vimos el otro día 24 00:01:04,400 --> 00:01:07,200 yo tengo un montón de posiciones en la lista 25 00:01:07,200 --> 00:01:09,620 pues vamos a recorrerlas 26 00:01:09,620 --> 00:01:10,920 con el bucle de toda la vida 27 00:01:10,920 --> 00:01:14,579 desde la posición 0 28 00:01:14,579 --> 00:01:17,060 mientras si sea menor 29 00:01:17,060 --> 00:01:19,280 que el total de posiciones de mi lista 30 00:01:19,280 --> 00:01:21,700 que el total de posiciones de mi lista 31 00:01:21,700 --> 00:01:23,340 ¿cómo lo puedo obtener? 32 00:01:23,340 --> 00:01:24,420 con el método size 33 00:01:24,420 --> 00:01:26,519 que vimos el otro día 34 00:01:26,519 --> 00:01:29,319 vale, pues este for 35 00:01:29,319 --> 00:01:31,159 es el que va avanzando 36 00:01:31,159 --> 00:01:32,819 posición 0, 1, 2 37 00:01:32,819 --> 00:01:34,620 así hasta la última de la lista 38 00:01:34,620 --> 00:01:35,760 vale 39 00:01:35,760 --> 00:01:38,739 y una lista la recorremos así 40 00:01:38,739 --> 00:01:40,200 porque tiene posiciones 41 00:01:40,200 --> 00:01:43,599 un conjunto jamás lo recorreríamos así 42 00:01:43,599 --> 00:01:44,859 no se puede, es imposible 43 00:01:44,859 --> 00:01:46,959 recorrer un conjunto así, no se puede 44 00:01:46,959 --> 00:01:49,480 porque los conjuntos 45 00:01:49,480 --> 00:01:50,620 no tienen posiciones 46 00:01:50,620 --> 00:01:52,159 pero las listas sí 47 00:01:52,159 --> 00:01:54,420 entonces una lista se puede recorrer 48 00:01:54,420 --> 00:01:56,500 posición 0, posición 1 49 00:01:56,500 --> 00:01:58,019 posición 2, vale 50 00:01:58,019 --> 00:02:00,200 pues cada posición de la lista 51 00:02:00,200 --> 00:02:02,500 ¿cómo se sacaba? cuando era una raíz 52 00:02:02,500 --> 00:02:04,900 ya sabemos cómo la sacábamos 53 00:02:04,900 --> 00:02:06,420 cuando era una raíz, sacábamos así 54 00:02:06,420 --> 00:02:08,699 la posición de la raíz 55 00:02:08,699 --> 00:02:09,699 así lo sacábamos, ¿no? 56 00:02:10,840 --> 00:02:12,639 pero alumnos no es una raíz 57 00:02:12,639 --> 00:02:13,620 alumnos es una lista 58 00:02:13,620 --> 00:02:16,759 luego la posición y la sacamos así 59 00:02:16,759 --> 00:02:18,759 con get y la posición 60 00:02:18,759 --> 00:02:20,539 ¿verdad? 61 00:02:20,659 --> 00:02:22,240 esto es lo que vimos el otro día 62 00:02:22,240 --> 00:02:24,419 entonces este es el alumno 63 00:02:24,419 --> 00:02:25,960 que está en la posición 64 00:02:25,960 --> 00:02:28,280 Y. Ese alumno es en la posición 65 00:02:28,280 --> 00:02:30,240 Y. Vale, ¿y qué tengo que hacer con el 66 00:02:30,240 --> 00:02:32,240 alumno que está en la posición Y? Ver 67 00:02:32,240 --> 00:02:34,639 si es el que tiene este número de matrícula. 68 00:02:35,840 --> 00:02:36,240 Porque 69 00:02:36,240 --> 00:02:37,900 si es él, ya lo he encontrado. 70 00:02:38,500 --> 00:02:39,500 Eso es lo que tenemos que hacer. 71 00:02:40,960 --> 00:02:42,139 Pues si el alumno 72 00:02:42,139 --> 00:02:43,479 que está en la posición Y, 73 00:02:44,360 --> 00:02:46,199 su número de matrícula 74 00:02:46,199 --> 00:02:49,719 resulta que 75 00:02:49,719 --> 00:02:50,439 es igual 76 00:02:50,439 --> 00:02:53,500 voy a bajar aquí abajo 77 00:02:53,500 --> 00:02:55,800 resulta que es 78 00:02:55,800 --> 00:02:56,960 igual al número 79 00:02:56,960 --> 00:02:58,319 silencio 80 00:02:58,319 --> 00:03:01,439 al número de matrícula 81 00:03:01,439 --> 00:03:02,879 que me han pasado por parámetro 82 00:03:02,879 --> 00:03:05,120 o sea, este es 83 00:03:05,120 --> 00:03:07,219 el objeto alumno en la posición 84 00:03:07,219 --> 00:03:09,360 y, pues si el objeto 85 00:03:09,360 --> 00:03:10,719 alumno en la posición y 86 00:03:10,719 --> 00:03:13,340 su número de matrícula, que lo saco con el 87 00:03:13,340 --> 00:03:15,520 get de toda la vida, es igual 88 00:03:15,520 --> 00:03:17,419 al número de matrícula que estoy 89 00:03:17,419 --> 00:03:19,680 buscando, este es 90 00:03:19,680 --> 00:03:21,300 el alumno que estoy buscando 91 00:03:21,300 --> 00:03:21,879 ese 92 00:03:21,879 --> 00:03:25,580 ¿vale? bueno, pues ya he encontrado 93 00:03:25,580 --> 00:03:27,500 el alumno que tiene esa matrícula. 94 00:03:27,539 --> 00:03:28,699 ¿Qué tengo que hacer con ese alumno? 95 00:03:29,319 --> 00:03:31,659 Pues en este caso, coger sus datos y concatenarlos 96 00:03:31,659 --> 00:03:33,520 en un stream, ya está, para devolverlo. 97 00:03:35,500 --> 00:03:37,460 Bueno, pues esto ya, 98 00:03:41,580 --> 00:03:42,599 pues vamos a 99 00:03:42,599 --> 00:03:46,319 poner en result, vamos a poner 100 00:03:46,319 --> 00:03:48,780 primero el nombre 101 00:03:48,780 --> 00:03:50,939 del alumno. 102 00:03:55,789 --> 00:03:56,870 Es que no tengo que implementar 103 00:03:56,870 --> 00:03:57,389 alto stream. 104 00:03:58,789 --> 00:04:00,129 Sí, pero es que entonces, ya, 105 00:04:00,129 --> 00:04:02,729 Sí, pero es que entonces tengo que implementar 106 00:04:02,729 --> 00:04:04,330 el toString 107 00:04:04,330 --> 00:04:08,849 ¿Cómo que no tengo los de matrícula? 108 00:04:09,530 --> 00:04:10,509 Es el get de la propiedad 109 00:04:10,509 --> 00:04:12,469 no matrícula. Los getter y setters los tengo 110 00:04:12,469 --> 00:04:12,870 todos. 111 00:04:14,930 --> 00:04:16,269 Lo que pasa es que el toString 112 00:04:16,269 --> 00:04:18,750 se tendría que adaptar al formato 113 00:04:18,750 --> 00:04:19,829 que el secretario quiere. 114 00:04:20,810 --> 00:04:22,490 ¿Vale? Al formato que el secretario quiere. 115 00:04:22,930 --> 00:04:24,350 Entonces yo aquí voy a poner un 116 00:04:24,350 --> 00:04:26,790 una especie de papelito 117 00:04:26,790 --> 00:04:28,810 lo que sacaría el secretario. 118 00:04:29,370 --> 00:04:29,589 ¿Vale? 119 00:04:30,129 --> 00:04:32,089 con su listado de asignaturas, etc. 120 00:04:34,790 --> 00:04:37,250 Esperamos, si tengo un toString construido 121 00:04:37,250 --> 00:04:39,490 que lo que me saca se adapta 122 00:04:39,490 --> 00:04:41,730 a lo que el secretario quiere ver en sus papeles, 123 00:04:41,850 --> 00:04:42,449 magnífico. 124 00:04:42,829 --> 00:04:44,550 Pongo ahí efectivamente el toString y ya está. 125 00:04:45,269 --> 00:04:45,790 Perfecto. 126 00:04:47,410 --> 00:04:47,649 Vale. 127 00:04:48,750 --> 00:04:50,970 Result nombre más, pues el nombre del alumno. 128 00:04:52,430 --> 00:05:00,019 Alumnos.geti.getNombre. 129 00:05:00,019 --> 00:05:06,370 vale, voy a ponerle también la edad 130 00:05:06,370 --> 00:05:07,589 al informe 131 00:05:07,589 --> 00:05:09,269 voy a hacer un salto de línea 132 00:05:09,269 --> 00:05:11,910 para que me lo ponga una línea separada 133 00:05:11,910 --> 00:05:14,029 entonces 134 00:05:14,029 --> 00:05:16,009 que poner todo esto en el toestring es un poco 135 00:05:16,009 --> 00:05:18,430 ni siquiera 136 00:05:18,430 --> 00:05:20,250 seguramente tendría yo acceso a la clase 137 00:05:20,250 --> 00:05:22,189 alumno, para poner en el toestring 138 00:05:22,189 --> 00:05:23,990 exactamente lo que quiere el secretario 139 00:05:23,990 --> 00:05:24,709 que salga en el papel 140 00:05:24,709 --> 00:05:28,089 vale, entonces le vamos a poner ahora 141 00:05:28,089 --> 00:05:32,839 la edad 142 00:05:32,839 --> 00:05:34,160 el alumno tiene 143 00:05:34,160 --> 00:05:36,319 ¿cuántos años tiene? pues tiene 144 00:05:36,319 --> 00:05:49,800 get 145 00:05:49,800 --> 00:05:50,980 y 146 00:05:50,980 --> 00:05:58,879 get edad, vale 147 00:05:58,879 --> 00:06:01,339 lo concateno con un salto de línea para que no me quede 148 00:06:01,339 --> 00:06:03,480 todo seguido ahí en el papelito 149 00:06:03,480 --> 00:06:06,120 y ahora 150 00:06:06,120 --> 00:06:08,839 tengo nombre, edad 151 00:06:08,839 --> 00:06:11,579 y ahora tengo que concatenar todas las asignaturas 152 00:06:11,579 --> 00:06:13,300 en ese string 153 00:06:13,300 --> 00:06:15,699 vale 154 00:06:15,699 --> 00:06:19,579 las asignaturas del alumno son a su vez 155 00:06:19,579 --> 00:06:20,180 una lista 156 00:06:20,180 --> 00:06:26,120 entonces tengo que recorrer la lista 157 00:06:26,120 --> 00:06:27,180 de asignaturas 158 00:06:27,180 --> 00:06:30,500 e irlas concatenando 159 00:06:30,500 --> 00:06:32,180 al result, para que aparezcan 160 00:06:32,180 --> 00:06:34,060 todas, otra vez 161 00:06:34,060 --> 00:06:38,449 ¿vale? 162 00:06:38,810 --> 00:06:40,050 repito, el alumno 163 00:06:40,050 --> 00:06:43,129 su nombre y su edad son propiedades simples 164 00:06:43,129 --> 00:06:45,250 las he concatenado al result fácilmente 165 00:06:45,250 --> 00:06:45,889 sin problemas 166 00:06:45,889 --> 00:06:49,069 pero asignaturas 167 00:06:49,069 --> 00:06:50,050 es un array 168 00:06:50,050 --> 00:06:52,449 perdón, es una lista 169 00:06:52,449 --> 00:06:55,310 entonces tengo que recorrer 170 00:06:55,310 --> 00:06:57,129 la lista de asignaturas 171 00:06:57,129 --> 00:06:58,250 tengo que recorrerla 172 00:06:58,250 --> 00:07:01,350 y cada asignatura irla concatenando al result 173 00:07:01,350 --> 00:07:05,040 vale, pues entonces 174 00:07:05,040 --> 00:07:06,139 aquí podría hacer 175 00:07:06,139 --> 00:07:14,240 menor que 176 00:07:14,240 --> 00:07:16,379 alumno 177 00:07:16,379 --> 00:07:21,860 punto get y 178 00:07:21,860 --> 00:07:23,939 punto 179 00:07:23,939 --> 00:07:25,420 get asignaturas 180 00:07:25,420 --> 00:07:37,529 a ver si abro esto 181 00:07:37,529 --> 00:07:41,610 veis, este for de aquí 182 00:07:41,610 --> 00:07:43,649 es para recorrer 183 00:07:43,649 --> 00:07:46,370 las asignaturas 184 00:07:46,370 --> 00:07:48,050 del alumno de posición I 185 00:07:48,050 --> 00:07:50,129 para recorrer 186 00:07:50,129 --> 00:07:51,449 las asignaturas del alumno de posición I 187 00:07:51,449 --> 00:07:54,209 y ahora, ¿qué hago con 188 00:07:54,209 --> 00:07:55,089 cada asignatura? 189 00:07:56,089 --> 00:07:57,410 la concateno 190 00:07:57,410 --> 00:07:58,850 ¿vale? 191 00:08:05,720 --> 00:08:07,180 get asignaturas 192 00:08:07,180 --> 00:08:15,050 de J 193 00:08:15,050 --> 00:08:25,149 ¿vale? o sea, todo 194 00:08:25,149 --> 00:08:25,709 este for 195 00:08:25,709 --> 00:08:29,009 es para concatenar 196 00:08:29,009 --> 00:08:31,189 todas y cada una de las asignaturas 197 00:08:31,189 --> 00:08:32,090 del alumno este 198 00:08:32,090 --> 00:08:35,250 para concatenarlas 199 00:08:35,250 --> 00:08:36,450 todas ellas 200 00:08:36,450 --> 00:08:38,250 a mi result 201 00:08:38,250 --> 00:08:40,629 para que se vea mejor el código 202 00:08:40,629 --> 00:08:42,470 como no me cabe, con la letra tan grande no me cabe 203 00:08:42,470 --> 00:08:44,549 voy a guardar al alumno osgesti 204 00:08:44,549 --> 00:08:47,190 en una variable auxiliar para que quede más cortito y se vea mejor 205 00:08:47,190 --> 00:08:48,990 entonces voy a guardar 206 00:08:48,990 --> 00:08:52,250 en una variable alumno aquí 207 00:08:52,250 --> 00:08:56,370 el alumno con el que 208 00:08:56,370 --> 00:08:59,789 este, el alumno encontrado 209 00:08:59,789 --> 00:09:02,450 ¿Vale? Este alumno estoy dentro de este if 210 00:09:02,450 --> 00:09:03,909 Este es el alumno 211 00:09:03,909 --> 00:09:06,769 Cuyo número de matrícula coincide 212 00:09:06,769 --> 00:09:07,529 Este, el get if 213 00:09:07,529 --> 00:09:09,889 Entonces para no arrastrar todo el rato el get if 214 00:09:09,889 --> 00:09:11,970 Voy a sustituirlo por a que se va a ver mejor 215 00:09:11,970 --> 00:09:14,009 A 216 00:09:14,009 --> 00:09:17,230 Esto es a 217 00:09:17,230 --> 00:09:20,360 Y esto es a 218 00:09:20,360 --> 00:09:21,899 Así se ve mejor 219 00:09:21,899 --> 00:09:24,120 ¿Vale? 220 00:09:24,659 --> 00:09:25,759 Este es mi alumno a 221 00:09:25,759 --> 00:09:28,340 Pongo su nombre 222 00:09:28,340 --> 00:09:29,899 En el resultado 223 00:09:29,899 --> 00:09:32,399 concateno su edad en el resultado 224 00:09:32,399 --> 00:09:35,179 y ahora recorro sus asignaturas 225 00:09:35,179 --> 00:09:36,419 las recorro 226 00:09:36,419 --> 00:09:37,240 que son una lista 227 00:09:37,240 --> 00:09:39,580 cada asignatura 228 00:09:39,580 --> 00:09:42,259 la voy concatenando al resultado 229 00:09:42,259 --> 00:09:44,240 aquí me va a quedar mejor con un salto de línea 230 00:09:44,240 --> 00:09:45,299 para que no salgan todas seguidas 231 00:09:45,299 --> 00:09:55,419 ¿vale? y de hecho le voy a poner aquí 232 00:09:55,419 --> 00:09:56,500 asignaturas 233 00:09:56,500 --> 00:09:59,799 para que quede más bonito luego cuando lo veamos 234 00:09:59,799 --> 00:10:04,909 igual 235 00:10:04,909 --> 00:10:13,500 asignaturas 236 00:10:13,500 --> 00:10:16,299 y le ponemos un salto de línea 237 00:10:16,299 --> 00:10:17,019 ya está 238 00:10:17,019 --> 00:10:20,750 vale, pues es el informe que va a sacar 239 00:10:20,750 --> 00:10:23,350 nombre, edad y todas sus asignaturas 240 00:10:23,350 --> 00:10:24,950 concatenadas una tras otra 241 00:10:24,950 --> 00:10:29,179 y ahora ya este resultado 242 00:10:29,179 --> 00:10:29,879 lo devuelve 243 00:10:29,879 --> 00:10:33,059 vale, pues nada 244 00:10:33,059 --> 00:10:36,200 hemos recorrido nuestro array alumnos 245 00:10:36,200 --> 00:10:38,639 cuando hemos encontrado un alumno 246 00:10:38,639 --> 00:10:40,340 cuya matrícula 247 00:10:40,340 --> 00:10:42,519 coincide con la que 248 00:10:42,519 --> 00:10:43,120 me han pasado 249 00:10:43,120 --> 00:10:46,679 ese alumno construyó el string 250 00:10:46,679 --> 00:10:47,340 con sus datos 251 00:10:47,340 --> 00:10:50,080 y ya está, construyó el string con sus datos 252 00:10:50,080 --> 00:10:52,259 y he tenido que entrar 253 00:10:52,259 --> 00:10:54,320 a su vez en un list 254 00:10:54,320 --> 00:10:55,440 que es el de sus asignaturas 255 00:10:55,440 --> 00:11:01,120 ¿vale? 256 00:11:11,799 --> 00:11:13,820 ¿este código que he escrito aquí está claro? 257 00:11:16,159 --> 00:11:16,679 vale 258 00:11:16,679 --> 00:11:19,220 pues vamos a aprovechar este método 259 00:11:19,220 --> 00:11:21,740 para ver otras formas de recorrer una lista 260 00:11:21,740 --> 00:11:23,639 para ver otras formas de recorrerla 261 00:11:23,639 --> 00:11:25,940 esta siempre es una forma 262 00:11:25,940 --> 00:11:26,860 de recorrer la lista 263 00:11:26,860 --> 00:11:29,679 voy posición por posición desde la 0 264 00:11:29,679 --> 00:11:31,120 mientras no haya llegado a la última 265 00:11:31,120 --> 00:11:33,980 y cada posición la recupero con get i 266 00:11:35,799 --> 00:11:42,480 Esta es una forma de recorrerla, pero hay otras formas alternativas para recorrer una lista. 267 00:11:43,600 --> 00:11:47,299 Dentro de este mismo método, lo vamos a poner aquí abajo. 268 00:12:00,370 --> 00:12:07,350 Otras formas de recorrer una lista, aparte del for este de índice que estamos poniendo aquí, otras formas de recorrerla. 269 00:12:08,830 --> 00:12:15,710 Pues una muy cómoda, pues el for each, un array, a veces lo hemos recorrido con un for de índice, 270 00:12:15,710 --> 00:12:19,389 for each y patatín y a veces con un for each 271 00:12:19,389 --> 00:12:21,450 normal, pues una lista igual 272 00:12:21,450 --> 00:12:23,590 una lista también podemos recorrerla 273 00:12:23,590 --> 00:12:25,389 con un for each cuando estamos 274 00:12:25,389 --> 00:12:26,889 vagos y queremos escribir rápido 275 00:12:26,889 --> 00:12:29,029 por ejemplo así 276 00:12:29,029 --> 00:12:31,049 para cada alumno 277 00:12:31,049 --> 00:12:33,429 a, por ejemplo 278 00:12:33,429 --> 00:12:34,549 ¿en qué lista? 279 00:12:35,429 --> 00:12:37,429 en la lista alumnos 280 00:12:37,429 --> 00:12:42,559 este es el for each 281 00:12:42,559 --> 00:12:47,120 pero ahora ha aplicado 282 00:12:47,120 --> 00:12:48,580 una lista, entonces 283 00:12:48,580 --> 00:12:51,200 este for each recorre la lista alumnos 284 00:12:51,200 --> 00:12:53,340 en la primera iteración 285 00:12:53,340 --> 00:12:55,000 A será el primero de la lista 286 00:12:55,000 --> 00:12:57,120 en la siguiente iteración 287 00:12:57,120 --> 00:12:58,740 A será el segundo de la lista 288 00:12:58,740 --> 00:13:00,779 en la siguiente iteración 289 00:13:00,779 --> 00:13:02,259 A será el tercero 290 00:13:02,259 --> 00:13:04,200 es exactamente igual que en el array 291 00:13:04,200 --> 00:13:05,299 exactamente igual 292 00:13:05,299 --> 00:13:08,480 vale exactamente igual 293 00:13:08,480 --> 00:13:11,080 entonces esta es cómoda por vaguería de escribir 294 00:13:11,080 --> 00:13:13,200 pero 295 00:13:13,200 --> 00:13:15,519 pasa lo mismo 296 00:13:15,519 --> 00:13:17,759 y aplica lo mismo que decíamos 297 00:13:17,759 --> 00:13:18,299 con el array 298 00:13:18,299 --> 00:13:21,240 esto como funciona 299 00:13:21,240 --> 00:13:22,639 A 300 00:13:22,639 --> 00:13:24,340 es una copia 301 00:13:24,340 --> 00:13:27,159 de lo que hay en la lista 302 00:13:27,159 --> 00:13:29,440 la primera iteración es una copia 303 00:13:29,440 --> 00:13:30,440 del primero, pero una copia 304 00:13:30,440 --> 00:13:33,179 la segunda iteración es una copia del segundo 305 00:13:33,179 --> 00:13:34,100 pero una copia 306 00:13:34,100 --> 00:13:37,039 la tercera iteración es una copia del tercero 307 00:13:37,039 --> 00:13:39,279 pero una copia, entonces para consultar 308 00:13:39,279 --> 00:13:41,299 estupendo, me da igual consultar 309 00:13:41,299 --> 00:13:42,980 el original que la copia, para consultar 310 00:13:42,980 --> 00:13:44,899 pero si yo quiero 311 00:13:44,899 --> 00:13:46,620 estoy cambiando el objeto 312 00:13:46,620 --> 00:13:49,320 o estoy eliminando 313 00:13:49,320 --> 00:13:50,600 o algo 314 00:13:50,600 --> 00:13:53,559 esto no le debería usar nunca jamás 315 00:13:53,559 --> 00:13:55,019 ¿vale? 316 00:13:56,159 --> 00:13:57,679 este cuando yo lo que 317 00:13:57,679 --> 00:13:59,039 quiero hacer es consultar 318 00:13:59,039 --> 00:14:00,580 y no voy a tocar la lista 319 00:14:00,580 --> 00:14:03,399 pero si voy a hacer modificaciones en la lista 320 00:14:03,399 --> 00:14:05,639 no, porque entonces estaré trabajando con copias 321 00:14:05,639 --> 00:14:09,539 ¿vale? y no solo eso 322 00:14:09,539 --> 00:14:11,600 sino que hay problemas añadidos 323 00:14:11,600 --> 00:14:13,639 que forzaremos para que no salgan 324 00:14:13,639 --> 00:14:14,519 dentro de un tiempo 325 00:14:14,519 --> 00:14:16,539 para que lo veáis 326 00:14:16,539 --> 00:14:19,379 pero por ahora que sirva como principio 327 00:14:19,379 --> 00:14:21,899 que como este for it 328 00:14:21,899 --> 00:14:23,320 ya sabéis dentro como funciona 329 00:14:23,320 --> 00:14:25,480 A es una copia 330 00:14:25,480 --> 00:14:27,080 que va siendo primero el primer elemento 331 00:14:27,080 --> 00:14:28,879 luego el segundo, luego el tercero 332 00:14:28,879 --> 00:14:31,039 esencialmente es útil para consultas 333 00:14:31,039 --> 00:14:34,840 no para toquetear la lista 334 00:14:34,840 --> 00:14:36,460 estamos trabajando con copia 335 00:14:36,460 --> 00:14:38,600 para consulta 336 00:14:38,600 --> 00:14:40,659 aparte de que es menos eficiente 337 00:14:40,659 --> 00:14:42,639 porque es que está todo el rato haciendo copias 338 00:14:42,639 --> 00:14:46,139 esto sin embargo 339 00:14:46,139 --> 00:14:48,259 no trabaja con copias 340 00:14:48,259 --> 00:14:49,620 o sea get i 341 00:14:49,620 --> 00:14:52,779 es directamente una referencia 342 00:14:52,779 --> 00:14:53,679 a ese objeto 343 00:14:53,679 --> 00:14:56,279 cuando recorremos esto 344 00:14:56,279 --> 00:14:58,659 alumnos get i es una referencia 345 00:14:58,659 --> 00:15:00,620 directa al objeto, no es una referencia 346 00:15:00,620 --> 00:15:02,720 a copia, es una referencia 347 00:15:02,720 --> 00:15:03,379 directa a esa 348 00:15:03,379 --> 00:15:06,740 bueno pues el for it sería 349 00:15:06,740 --> 00:15:08,340 otra forma alternativa y otra 350 00:15:08,340 --> 00:15:10,759 la más mejor y la más 351 00:15:10,759 --> 00:15:13,039 recomendable, otra forma 352 00:15:13,039 --> 00:15:14,500 el iterador 353 00:15:14,500 --> 00:15:17,139 que lo mencionamos ya 354 00:15:17,139 --> 00:15:19,340 el martes 355 00:15:19,340 --> 00:15:20,919 cuando vimos los métodos 356 00:15:20,919 --> 00:15:23,019 que ofrecía List 357 00:15:23,019 --> 00:15:25,519 el literador 358 00:15:25,519 --> 00:15:27,320 es un objeto que se crea 359 00:15:27,320 --> 00:15:29,440 que sirve para recorrer colecciones 360 00:15:29,440 --> 00:15:30,500 de cualquier tipo 361 00:15:30,500 --> 00:15:33,220 de ahí viene su nombre 362 00:15:33,220 --> 00:15:34,120 es un literador 363 00:15:34,120 --> 00:15:37,059 vale, entonces esto es un objeto 364 00:15:37,059 --> 00:15:39,059 que sirve para recorrer 365 00:15:39,059 --> 00:15:41,299 colecciones de datos, sean listas 366 00:15:41,299 --> 00:15:43,279 sean conjuntos, sean de lo que sean 367 00:15:43,279 --> 00:15:45,120 porque hay más colecciones de datos aparte de estas 368 00:15:45,120 --> 00:15:47,259 de la Java útil, hay muchas más 369 00:15:47,259 --> 00:15:49,320 para cosas específicas 370 00:15:49,320 --> 00:15:51,139 pero para cosas genéricas 371 00:15:51,139 --> 00:15:52,460 son estas de Java útil 372 00:15:52,460 --> 00:15:54,259 bueno, pues esto es un objeto 373 00:15:54,259 --> 00:15:56,279 que vale para recorrer 374 00:15:56,279 --> 00:15:57,759 colecciones 375 00:15:57,759 --> 00:16:01,259 y gestiona temas como concurrencia 376 00:16:01,259 --> 00:16:02,299 entonces es bastante 377 00:16:02,299 --> 00:16:04,600 seguro de usar 378 00:16:04,600 --> 00:16:07,159 bueno, pues para recorrer una colección con iterador 379 00:16:07,159 --> 00:16:08,620 hay que crear el objeto iterador 380 00:16:08,620 --> 00:16:10,980 pues el objeto iterador pertenece a la clase 381 00:16:10,980 --> 00:16:12,940 iterator, como uno se puede imaginar 382 00:16:12,940 --> 00:16:15,580 entonces, ¿cómo lo instancia uno? 383 00:16:16,600 --> 00:16:17,240 bueno, pues 384 00:16:17,240 --> 00:16:19,360 uno piensa, a ver, ¿en dónde 385 00:16:19,360 --> 00:16:21,360 quiero yo iterar? en una colección de objetos 386 00:16:21,360 --> 00:16:23,139 alumno, pues iterador 387 00:16:23,139 --> 00:16:24,740 es una clase genérica 388 00:16:24,740 --> 00:16:27,360 la clase iterador si uno entra 389 00:16:27,360 --> 00:16:27,840 en ella 390 00:16:27,840 --> 00:16:39,580 la clase iterador, bueno es una interfaz 391 00:16:39,580 --> 00:16:41,399 uno hace una implementación 392 00:16:41,399 --> 00:16:43,659 claro, es una 393 00:16:43,659 --> 00:16:45,360 clase lo que implementa eso 394 00:16:45,360 --> 00:16:46,299 los que implementen eso 395 00:16:46,299 --> 00:16:49,580 lo que hacen es iterar en colecciones 396 00:16:49,580 --> 00:16:52,399 pero en colecciones de qué, lo deja genérico 397 00:16:52,399 --> 00:16:55,600 de lo que sea, cuando tú me instancies para iterar 398 00:16:55,600 --> 00:16:58,159 cuando tú me instancies ya me dirás sobre qué itero 399 00:16:58,159 --> 00:17:00,580 pero ahora mismo es genérica 400 00:17:00,580 --> 00:17:03,879 bueno pues como recordáis de clases genéricas del otro día 401 00:17:03,879 --> 00:17:07,279 cuando instanciemos el iterador que es aquí 402 00:17:07,279 --> 00:17:09,859 en este momento, aquí ya decimos 403 00:17:09,859 --> 00:17:13,779 oye, pero a qué clase pertenecen los objetos 404 00:17:13,779 --> 00:17:16,579 sobre los que vas a iterar, en nuestro caso una colección de alumnos 405 00:17:16,579 --> 00:17:18,960 pues aquí es donde nosotros 406 00:17:18,960 --> 00:17:20,740 ya nos comprometemos y decimos 407 00:17:20,740 --> 00:17:22,160 oye, que esto es de alumno 408 00:17:22,160 --> 00:17:24,380 ah, vale, vale, esto es de alumno 409 00:17:24,380 --> 00:17:25,799 pues aquí ya lo fijas 410 00:17:25,799 --> 00:17:27,720 vale, pues hacemos un iterador 411 00:17:27,720 --> 00:17:29,619 ¿y cómo se instancia el iterador? 412 00:17:30,299 --> 00:17:32,160 pues en qué lista queremos iterar 413 00:17:32,160 --> 00:17:33,940 en la lista que se llama alumnos 414 00:17:33,940 --> 00:17:36,240 pues la lista que se llama alumnos 415 00:17:36,240 --> 00:17:37,559 tiene un método 416 00:17:37,559 --> 00:17:39,519 que es este 417 00:17:39,519 --> 00:17:42,640 que te devuelve ya ese objeto iterador 418 00:17:42,640 --> 00:17:43,680 ¿vale? 419 00:17:44,039 --> 00:17:45,480 vamos a importar 420 00:17:45,480 --> 00:17:48,500 la clase de Java útil 421 00:17:48,500 --> 00:17:50,460 cuidado con los import 422 00:17:50,460 --> 00:17:52,099 porque como ya sabéis el Eclipse 423 00:17:52,099 --> 00:17:53,759 obviamente no sabe absolutamente nada 424 00:17:53,759 --> 00:17:55,680 entonces él te ofrece 425 00:17:55,680 --> 00:17:58,359 todas las clases iterador que he visto por ahí 426 00:17:58,359 --> 00:18:00,380 pero claro tenéis que elegir 427 00:18:00,380 --> 00:18:02,359 cuál queréis, queréis esta que viene 428 00:18:02,359 --> 00:18:04,619 de su Intex HTML document 429 00:18:04,619 --> 00:18:05,680 pero que es eso, no 430 00:18:05,680 --> 00:18:08,059 sabemos que las colecciones están en Java útil 431 00:18:08,059 --> 00:18:09,539 lo sabemos porque lo hemos estudiado 432 00:18:09,539 --> 00:18:12,619 entonces obviamente querremos importarla de Java útil 433 00:18:12,619 --> 00:18:14,799 no importamos la primera que nos ofrece 434 00:18:14,799 --> 00:18:17,279 importamos la que sabemos 435 00:18:17,279 --> 00:18:19,660 que es. Entonces, como 436 00:18:19,660 --> 00:18:21,700 estamos con colecciones, esto de arriba 437 00:18:21,700 --> 00:18:23,720 no tiene ningún sentido. Es java.util. 438 00:18:24,079 --> 00:18:25,799 ¿Vale? Pues eso. 439 00:18:25,940 --> 00:18:27,140 Cuidado con los import, obviamente. 440 00:18:28,440 --> 00:18:29,660 Vale. Pues ya tenemos el iterador. 441 00:18:30,319 --> 00:18:30,839 Y ahora, 442 00:18:31,900 --> 00:18:33,160 este objeto iterador 443 00:18:33,160 --> 00:18:35,539 es un objeto adicional que sirve para 444 00:18:35,539 --> 00:18:37,279 recorrer esta lista. 445 00:18:38,240 --> 00:18:39,960 Es como si apuntara esa lista. 446 00:18:40,599 --> 00:18:41,740 Y sirve para recorrerla. 447 00:18:41,779 --> 00:18:43,519 Y además ofrece métodos para hacer cosas 448 00:18:43,519 --> 00:18:44,220 con esa lista. 449 00:18:44,799 --> 00:18:46,660 De forma sincronizada, por eso es útil. 450 00:18:47,859 --> 00:18:48,059 ¿Vale? 451 00:18:48,119 --> 00:18:49,819 Pues ahora cómo lo usamos para recorrerla. 452 00:18:50,700 --> 00:18:53,240 Pues it tiene un método que es el clave, 453 00:18:54,380 --> 00:18:55,759 que es el método next. 454 00:18:56,440 --> 00:18:56,759 ¿Vale? 455 00:18:58,099 --> 00:18:59,599 Y el método has next. 456 00:18:59,599 --> 00:19:03,819 Tiene este, que ahora vemos cómo lo usamos, 457 00:19:04,019 --> 00:19:06,839 y este, entre otros. 458 00:19:07,720 --> 00:19:09,539 Estos son los dos más importantes, 459 00:19:09,660 --> 00:19:10,779 los que se usan para recorrer. 460 00:19:11,119 --> 00:19:11,960 Estos dos métodos. 461 00:19:12,940 --> 00:19:13,839 ¿Este qué te dice? 462 00:19:13,839 --> 00:19:16,579 O sea, el iterador inicialmente se queda posicionado 463 00:19:16,579 --> 00:19:18,440 Antes del principio 464 00:19:18,440 --> 00:19:21,460 Si la lista tiene 0, 1 y 2 465 00:19:21,460 --> 00:19:22,779 Es como si se quedara en la menos 1 466 00:19:22,779 --> 00:19:24,099 Se queda en la posición menos 1 467 00:19:24,099 --> 00:19:27,539 Vale, pues next que hace 468 00:19:27,539 --> 00:19:28,700 Next lo va avanzando 469 00:19:28,700 --> 00:19:30,460 Entonces un primer next hay que hacer 470 00:19:30,460 --> 00:19:32,359 Porque él empieza en la menos 1 471 00:19:32,359 --> 00:19:34,279 Un primer next hay que hacer 472 00:19:34,279 --> 00:19:36,720 Y has next que hace 473 00:19:36,720 --> 00:19:38,700 Te devuelve un boolean para decirte 474 00:19:38,700 --> 00:19:40,599 Si hay siguiente o si no hay siguiente 475 00:19:40,599 --> 00:19:43,519 ¿vale? entonces 476 00:19:43,519 --> 00:19:45,460 cuando llevamos al método it has next 477 00:19:45,460 --> 00:19:47,740 nos devuelve true si hay otro 478 00:19:47,740 --> 00:19:49,660 más todavía, si queda 479 00:19:49,660 --> 00:19:51,480 alguno, si queda alguno 480 00:19:51,480 --> 00:19:53,660 y nos devuelve false si no queda ninguno 481 00:19:53,660 --> 00:19:54,680 si ya está al final 482 00:19:54,680 --> 00:19:58,059 ¿vale? esto es para decir, ¿quedan elementos o no quedan? 483 00:19:58,759 --> 00:19:59,720 para esto vale 484 00:19:59,720 --> 00:20:00,500 te devuelve un true 485 00:20:00,500 --> 00:20:02,720 y este salta 486 00:20:02,720 --> 00:20:05,500 bueno, pues ¿cómo se combinan estos métodos 487 00:20:05,500 --> 00:20:06,579 para recorrer con un iterador? 488 00:20:07,000 --> 00:20:08,799 se combinan en un while de esta manera 489 00:20:08,799 --> 00:20:12,670 mientras 490 00:20:12,670 --> 00:20:16,109 queden elementos 491 00:20:16,109 --> 00:20:21,640 mientras queden 492 00:20:21,640 --> 00:20:23,640 porque en it.next hemos dicho que devuelve 493 00:20:23,640 --> 00:20:25,420 true o false, luego es una condición 494 00:20:25,420 --> 00:20:27,059 devuelve true o false 495 00:20:27,059 --> 00:20:29,400 es una condición, se puede meter en un while 496 00:20:29,400 --> 00:20:31,079 pues mientras queden 497 00:20:31,079 --> 00:20:33,319 ¿qué hacemos? pues avanza 498 00:20:33,319 --> 00:20:34,799 para quedarte con él 499 00:20:34,799 --> 00:20:36,539 entonces it.next 500 00:20:36,539 --> 00:20:39,680 avanza y te recupera 501 00:20:39,680 --> 00:20:41,740 un objeto alumno, te lo recupera 502 00:20:41,740 --> 00:20:42,980 hombre, aquí lo ideal sería 503 00:20:42,980 --> 00:20:45,160 meterlo en una referencia 504 00:20:45,160 --> 00:20:46,319 ahí 505 00:20:46,319 --> 00:20:48,319 y ahora 506 00:20:48,319 --> 00:20:49,940 con este alumno A 507 00:20:49,940 --> 00:20:52,299 uno ya hace lo que le dé la gana 508 00:20:52,299 --> 00:20:54,759 este es el bucle de recorrido 509 00:20:54,759 --> 00:20:56,119 mientras queden 510 00:20:56,119 --> 00:20:58,000 avanza 511 00:20:58,000 --> 00:21:00,039 y ya estás en él, que es este 512 00:21:00,039 --> 00:21:01,339 y con él ya haces lo que sea 513 00:21:01,339 --> 00:21:04,519 mientras que siguen quedando 514 00:21:04,519 --> 00:21:05,700 vuelve a avanzar 515 00:21:05,700 --> 00:21:07,940 luego ya estás en el siguiente y haces con él lo que sea 516 00:21:07,940 --> 00:21:10,519 que siguen quedando, vuelve a avanzar 517 00:21:10,519 --> 00:21:12,240 y ya estás en el siguiente, haz con él lo que sea 518 00:21:12,240 --> 00:21:15,220 ¿Vale? Este es el recorrido 519 00:21:15,220 --> 00:21:17,339 El aspecto del bucle para recorrer 520 00:21:17,339 --> 00:21:18,039 Con un iterador 521 00:21:18,039 --> 00:21:23,380 Entonces 522 00:21:23,380 --> 00:21:27,099 Aplicaciones más complicadas que combinen estos 523 00:21:27,099 --> 00:21:28,759 Con otros recorridos, con otras colecciones 524 00:21:28,759 --> 00:21:29,700 Siempre va a ser mejor 525 00:21:29,700 --> 00:21:32,819 Siempre va a ser mejor usar un iterador 526 00:21:32,819 --> 00:21:35,079 Nosotros ahora mismo en esto que tenemos una única colección 527 00:21:35,079 --> 00:21:36,359 Aislada y no estamos haciendo nada 528 00:21:36,359 --> 00:21:38,559 Pues no notaríamos diferencia 529 00:21:38,559 --> 00:21:40,779 Pero una aplicación más complicada 530 00:21:40,779 --> 00:21:42,500 Que mezcle hilos, que mezcle cosas 531 00:21:42,500 --> 00:21:44,440 De repente 532 00:21:44,440 --> 00:21:46,839 podría no funcionarnos en un caso concreto 533 00:21:46,839 --> 00:21:48,740 por haber 534 00:21:48,740 --> 00:21:50,640 estado recorriendo con un 535 00:21:50,640 --> 00:21:52,339 for normal y si cambiamos a iterador 536 00:21:52,339 --> 00:21:54,559 ya así no se estaría funcionando. Entonces, esta 537 00:21:54,559 --> 00:21:56,440 siempre es la forma más segura. 538 00:21:56,859 --> 00:21:58,660 Pero en las aplicaciones que hacemos nosotros ahora 539 00:21:58,660 --> 00:22:00,460 nos da igual porque 540 00:22:00,460 --> 00:22:02,279 no estamos en situaciones de esas 541 00:22:02,279 --> 00:22:03,480 críticas. 542 00:22:05,480 --> 00:22:06,460 Vale, entonces aquí 543 00:22:06,460 --> 00:22:08,500 ya haríamos lo que fuera con el alumno. 544 00:22:09,579 --> 00:22:09,819 ¿Vale? 545 00:22:10,700 --> 00:22:12,440 Entonces, bueno, 546 00:22:12,440 --> 00:22:14,400 pues estas serían formas alternativas 547 00:22:14,400 --> 00:22:18,539 de recorrerlo, vale, me da igual como lo recorra 548 00:22:18,539 --> 00:22:22,160 me da igual como llego al alumno A de cada iteración 549 00:22:22,160 --> 00:22:26,500 lo que hemos hecho en este método es construir el informe y ya está 550 00:22:26,500 --> 00:22:30,400 vale, pues entonces ya tenemos 551 00:22:30,400 --> 00:22:34,339 insertar y mostrar datos, pues vamos a hacer un main rápido 552 00:22:34,339 --> 00:22:37,920 que pruebe estos datos, pruebe estos métodos 553 00:22:37,920 --> 00:22:39,579 a ver que 554 00:22:39,579 --> 00:22:45,549 vale, yo no voy a hacer el main 555 00:22:45,549 --> 00:22:47,210 porque no quiero escribir tanto ni perder el tiempo 556 00:22:47,210 --> 00:22:48,329 entonces si haríais un main 557 00:22:48,329 --> 00:22:51,910 entonces voy a insertarle un alumno 558 00:22:51,910 --> 00:22:52,509 sin más 559 00:22:52,509 --> 00:23:00,190 alumnos, esta es mi colección 560 00:23:00,190 --> 00:23:02,029 de alumnos, pues voy a llamar 561 00:23:02,029 --> 00:23:03,970 al método de insertar 562 00:23:03,970 --> 00:23:05,410 eh 563 00:23:05,410 --> 00:23:07,769 ay perdón 564 00:23:07,769 --> 00:23:08,509 que estoy idiota 565 00:23:08,509 --> 00:23:11,670 operaciones punto 566 00:23:11,670 --> 00:23:13,750 insertar alumno 567 00:23:13,750 --> 00:23:14,529 vale 568 00:23:14,529 --> 00:23:18,799 vale, este es mi método 569 00:23:18,799 --> 00:23:21,200 insertar alumno de la clase operaciones 570 00:23:21,200 --> 00:23:22,859 vamos a insertar 571 00:23:22,859 --> 00:23:23,480 un alumno 572 00:23:23,480 --> 00:23:29,759 lo natural sería pedir antes los datos por teclado 573 00:23:29,759 --> 00:23:31,579 pero bueno, voy a instanciar 574 00:23:31,579 --> 00:23:32,400 ya directamente 575 00:23:32,400 --> 00:23:34,839 un alumno aquí con mi constructor 576 00:23:34,839 --> 00:23:37,579 con un número de matrícula 577 00:23:38,140 --> 00:23:38,539 uno 578 00:23:38,539 --> 00:23:41,960 y su nombre 579 00:23:41,960 --> 00:23:43,539 ala, este 580 00:23:43,539 --> 00:23:54,029 vale, y alumno tenía 581 00:23:54,029 --> 00:23:56,309 por ahora 582 00:23:56,309 --> 00:23:57,690 sin asignaturas 583 00:23:57,690 --> 00:24:01,230 alumno 584 00:24:01,230 --> 00:24:02,190 ¿por qué no me 585 00:24:02,190 --> 00:24:07,799 int string 586 00:24:07,799 --> 00:24:08,759 int 587 00:24:08,759 --> 00:24:11,579 ah vale no que era la edad 588 00:24:11,579 --> 00:24:13,039 vale vale la edad me la estoy saltando 589 00:24:13,039 --> 00:24:13,619 de la manga 590 00:24:13,619 --> 00:24:15,319 vale 20 591 00:24:15,319 --> 00:24:18,599 y tenía un constructor en el que no había metido las asignaturas 592 00:24:18,599 --> 00:24:19,359 a propósito 593 00:24:19,359 --> 00:24:21,660 ¿no? recordáis de alumno 594 00:24:21,660 --> 00:24:24,299 que no las habíamos metido a propósito 595 00:24:24,299 --> 00:24:26,119 en el constructor para luego 596 00:24:26,119 --> 00:24:28,920 irlas añadiendo a través del menú. 597 00:24:31,119 --> 00:24:32,779 Vale, pues ya tengo aquí 598 00:24:32,779 --> 00:24:37,160 la llamada a mi método de insertar alumno 599 00:24:37,160 --> 00:24:39,000 donde inserto esto. 600 00:24:41,690 --> 00:24:43,450 Lo va a insertar en los datos 601 00:24:43,450 --> 00:24:44,329 que los dos están aquí. 602 00:24:46,609 --> 00:24:48,210 Vale, entonces esto es 603 00:24:48,210 --> 00:24:50,349 lo que hace la aplicación de secretaría. 604 00:24:51,269 --> 00:24:52,630 En lugar de un menú, 605 00:24:52,730 --> 00:24:54,309 yo estoy insertando uno a capón, 606 00:24:54,430 --> 00:24:55,650 pero aquí habría que poner un menú 607 00:24:55,650 --> 00:24:57,869 introduzca número de matrícula 608 00:24:57,869 --> 00:25:00,390 edad y nombre, y ya está 609 00:25:00,390 --> 00:25:01,990 y haría esto mismo 610 00:25:01,990 --> 00:25:04,170 pero con los datos leídos por teclado 611 00:25:04,170 --> 00:25:05,509 no directamente con los he puesto yo 612 00:25:05,509 --> 00:25:07,930 vale, y ahora vamos a 613 00:25:07,930 --> 00:25:10,390 mostrar el resultado 614 00:25:10,390 --> 00:25:10,829 de 615 00:25:10,829 --> 00:25:15,470 mostrar los datos de este alumno 616 00:25:15,470 --> 00:25:17,650 mostrar datos del que tengan los matrícula 1 617 00:25:17,650 --> 00:25:21,400 vale, este sería 618 00:25:21,400 --> 00:25:23,319 nuestro primer caso de prueba 619 00:25:23,319 --> 00:25:26,619 vale, bueno, vamos a hacer 620 00:25:26,619 --> 00:25:28,819 un primer caso de prueba 621 00:25:28,819 --> 00:25:30,519 estamos haciendo el testing de esta aplicación 622 00:25:30,519 --> 00:25:32,740 Primer caso de prueba 623 00:25:32,740 --> 00:25:34,839 Número de matrícula que no existe 624 00:25:34,839 --> 00:25:35,940 A ver qué hace 625 00:25:35,940 --> 00:25:37,640 A ver si lo que hace nos gusta o no 626 00:25:37,640 --> 00:25:39,839 Si lo que hace nos gusta lo dejamos 627 00:25:39,839 --> 00:25:42,059 Si lo que hace no nos gusta habrá que decir al desarrollador 628 00:25:42,059 --> 00:25:44,420 Este caso de prueba lo has pasado fatal 629 00:25:44,420 --> 00:25:46,119 Venga, primer caso de prueba 630 00:25:46,119 --> 00:25:47,619 Número de matrícula que no existe 631 00:25:47,619 --> 00:25:48,839 Vamos a ver qué hace 632 00:25:48,839 --> 00:25:58,420 No ha dado error pero tampoco ha mostrado nada 633 00:25:58,420 --> 00:26:00,759 Hombre, yo iría y le diría al desarrollador 634 00:26:00,759 --> 00:26:01,799 Oye 635 00:26:01,799 --> 00:26:04,160 Si el alumno no existe 636 00:26:04,160 --> 00:26:06,500 Que me muestre un mensajito 637 00:26:06,500 --> 00:26:09,039 ¿Verdad? Me muestra un mensajito 638 00:26:09,039 --> 00:26:11,299 Eso sería lo primero que yo haría 639 00:26:11,299 --> 00:26:12,599 Si fuera del equipo de testing 640 00:26:12,599 --> 00:26:15,579 ¿Vale? 641 00:26:16,759 --> 00:26:19,079 Pero eso lo podríamos cambiar muy fácilmente 642 00:26:19,079 --> 00:26:21,259 Porque aquí hay mostrar datos 643 00:26:21,259 --> 00:26:22,900 ¿Qué haríais? 644 00:26:39,740 --> 00:26:41,400 ¿Qué haríais para que el programa 645 00:26:41,400 --> 00:26:43,400 Me muestre? ¿Qué cambio incorporaríais? 646 00:26:43,460 --> 00:26:44,880 Para que el programa me muestre 647 00:26:44,880 --> 00:26:47,559 Cuando yo lo llamo por un número de matrícula 648 00:26:47,559 --> 00:26:49,039 Que no existe, que me diga 649 00:26:49,039 --> 00:26:51,859 En lugar de nada, porque me ha mostrado nada 650 00:26:51,859 --> 00:26:54,200 que me diga, el alumno no está. 651 00:26:55,299 --> 00:26:56,000 ¿Qué cambio 652 00:26:56,000 --> 00:26:57,299 podríais hacer en este método? 653 00:27:14,450 --> 00:27:15,289 Si el alumno es diferente 654 00:27:15,289 --> 00:27:15,829 de null, ¿dónde? 655 00:27:20,680 --> 00:27:22,299 Bueno, alumno es diferente de null. 656 00:27:26,619 --> 00:27:27,960 Claro, o sea, lo más fácil es, 657 00:27:28,099 --> 00:27:30,299 si el alumno no existe, no ha entrado 658 00:27:30,299 --> 00:27:32,140 nunca en el if, con lo cual esto se queda 659 00:27:32,140 --> 00:27:32,539 vacío. 660 00:27:34,000 --> 00:27:36,019 Pues entonces, aquí 661 00:27:36,019 --> 00:27:37,059 simplemente decir, 662 00:27:38,119 --> 00:27:38,480 if 663 00:27:38,480 --> 00:27:40,799 result 664 00:27:40,799 --> 00:27:43,220 es 665 00:27:43,220 --> 00:27:47,559 diferente 666 00:27:47,559 --> 00:27:53,150 de la cadena vacía 667 00:27:53,150 --> 00:27:54,529 es porque ha encontrado el alumno 668 00:27:54,529 --> 00:27:55,769 entonces que me devuelva result 669 00:27:55,769 --> 00:27:58,470 y si no, que me devuelva 670 00:27:58,470 --> 00:28:03,220 no existe alumno 671 00:28:03,220 --> 00:28:05,460 con ese número 672 00:28:05,460 --> 00:28:09,410 de matrícula 673 00:28:10,410 --> 00:28:14,299 y ya está 674 00:28:14,299 --> 00:28:18,250 es una posible forma 675 00:28:18,250 --> 00:28:20,569 si hemos llegado a este punto 676 00:28:20,569 --> 00:28:22,450 y esto ha cambiado de valor 677 00:28:22,450 --> 00:28:24,529 no es el valor inicial de aquí 678 00:28:24,529 --> 00:28:26,630 es porque hemos entrado en el if 679 00:28:26,630 --> 00:28:27,650 y hemos encontrado al alumno 680 00:28:27,650 --> 00:28:30,150 hemos entrado en el if y hemos construido el informe 681 00:28:30,150 --> 00:28:32,349 pero si el alumno no existe 682 00:28:32,349 --> 00:28:33,250 nunca hemos entrado en el if 683 00:28:33,250 --> 00:28:35,710 luego no hemos construido el informe 684 00:28:35,710 --> 00:28:36,710 y esto se ha quedado como tal 685 00:28:36,710 --> 00:28:39,750 bueno pues entonces 686 00:28:39,750 --> 00:28:41,349 una forma sencilla es 687 00:28:41,349 --> 00:28:44,150 si la hemos construido 688 00:28:44,150 --> 00:28:46,450 devuélvela y si no la hemos construido devuelve esto 689 00:28:46,450 --> 00:28:48,470 entonces con ese arreglo rápido 690 00:28:48,470 --> 00:28:50,829 ya cuando el que hace las pruebas 691 00:28:50,829 --> 00:28:51,710 vuelva a hacer la prueba 692 00:28:51,710 --> 00:28:54,630 Para este caso de prueba le dirá 693 00:28:54,630 --> 00:28:57,009 Ah, vale, este caso de prueba ya lo has pasado con éxito 694 00:28:57,009 --> 00:28:57,609 Vale 695 00:28:57,609 --> 00:29:00,309 Este caso de prueba está pasado con éxito 696 00:29:00,309 --> 00:29:02,529 Venga, vamos al siguiente caso de prueba 697 00:29:02,529 --> 00:29:04,430 Que es matrícula que sí existe 698 00:29:04,430 --> 00:29:05,430 A ver qué hace 699 00:29:05,430 --> 00:29:09,769 Vamos a pasar el número de matrícula que sí existe 700 00:29:09,769 --> 00:29:11,089 Vale, esto sería 701 00:29:11,089 --> 00:29:13,730 Caso de prueba 1 702 00:29:13,730 --> 00:29:20,750 Matrícula que no existe 703 00:29:20,750 --> 00:29:22,049 Vale 704 00:29:22,049 --> 00:29:24,730 Ahora, venga, caso de prueba 2 705 00:29:24,730 --> 00:29:33,410 matrícula 706 00:29:33,410 --> 00:29:35,789 que si existe 707 00:29:35,789 --> 00:29:39,910 venga, caso de prueba 2 708 00:29:39,910 --> 00:29:41,329 matrícula que si existe 709 00:29:41,329 --> 00:29:54,269 vale, esta la dejo comentada 710 00:29:54,269 --> 00:29:56,130 porque ya la hemos pasado, esta prueba 711 00:29:56,130 --> 00:29:58,109 mostrar datos 712 00:29:58,109 --> 00:30:00,089 1, matrícula que si existe 713 00:30:00,089 --> 00:30:01,670 caso de prueba 1, a ver así 714 00:30:01,670 --> 00:30:04,430 en 10 segundos, en menos, en 2 segundos 715 00:30:04,430 --> 00:30:06,349 va a pasar este caso de prueba 716 00:30:06,349 --> 00:30:08,450 o no lo va a pasar, va a pasar con 717 00:30:08,450 --> 00:30:10,710 ¿success o fail? 718 00:30:12,650 --> 00:30:13,130 rápido 719 00:30:13,130 --> 00:30:16,150 ¿éxito o fracaso? 720 00:30:17,849 --> 00:30:18,769 ¿nadie dice nada? 721 00:30:19,309 --> 00:30:22,150 normalmente solo fracaso 722 00:30:22,150 --> 00:30:23,630 bueno, yo primero 723 00:30:23,630 --> 00:30:25,289 hay que dejar un criterio 724 00:30:25,289 --> 00:30:29,289 yo creo 725 00:30:29,289 --> 00:30:36,859 ¿por qué podría pasarlo con fracaso? 726 00:30:37,859 --> 00:30:39,339 con lo que estamos diciendo hasta ahora 727 00:30:39,339 --> 00:30:41,279 nuestros únicos errores hasta ahora están siendo 728 00:30:41,279 --> 00:30:42,599 null pointer exception, ¿verdad? 729 00:30:42,599 --> 00:30:45,299 es que no estamos haciendo más cosas 730 00:30:45,299 --> 00:30:46,319 no hay más que 731 00:30:46,319 --> 00:30:49,640 ¿dónde podría salir aquí un null pointer exception? 732 00:30:51,880 --> 00:30:53,619 en operaciones podría salir 733 00:30:53,619 --> 00:30:55,440 un null pointer exception, ¿verdad? 734 00:30:59,230 --> 00:30:59,670 si 735 00:30:59,670 --> 00:31:02,559 esto 736 00:31:02,559 --> 00:31:04,119 fuera null 737 00:31:04,119 --> 00:31:06,200 pero no lo es 738 00:31:06,200 --> 00:31:09,599 y si eso no es null 739 00:31:09,599 --> 00:31:11,420 que esto fuera null 740 00:31:11,420 --> 00:31:14,759 son los dos puntos clave 741 00:31:14,759 --> 00:31:17,019 las asignaturas del alumno 742 00:31:17,019 --> 00:31:19,619 Las asignaturas del alumno van a ser null. 743 00:31:21,660 --> 00:31:22,880 No he introducido ninguna. 744 00:31:23,000 --> 00:31:23,720 Vamos a ver alumno. 745 00:31:24,220 --> 00:31:25,900 No he introducido ninguna asignatura. 746 00:31:27,619 --> 00:31:29,880 Con lo cual, las asignaturas de alumno van a ser null. 747 00:31:30,599 --> 00:31:32,079 Entonces, no va a pasar este caso de prueba. 748 00:31:33,039 --> 00:31:35,960 Otra cosa es que yo aquí haya esta clase, 749 00:31:36,220 --> 00:31:38,660 esté cambiada y esté inicializada una lista vacía. 750 00:31:39,759 --> 00:31:40,519 Entonces, sí lo pasa. 751 00:31:40,660 --> 00:31:41,920 Simplemente no muestra asignaturas. 752 00:31:42,240 --> 00:31:43,980 Pero no lo va a pasar, va a decir un null pointer exception. 753 00:31:44,740 --> 00:31:45,880 ¿Verdad? Vamos a probarlo. 754 00:31:45,880 --> 00:31:47,940 porque esto es null 755 00:31:47,940 --> 00:31:52,140 vamos a pasar este caso de prueba 756 00:31:52,140 --> 00:31:56,440 pues efectivamente 757 00:31:56,440 --> 00:31:58,099 null pointer exception y donde 758 00:31:58,099 --> 00:32:01,829 pues ahí 759 00:32:01,829 --> 00:32:04,569 está haciendo 760 00:32:04,569 --> 00:32:06,349 esto que es null 761 00:32:06,349 --> 00:32:08,150 esto es un null enorme 762 00:32:08,150 --> 00:32:09,230 punto 6 763 00:32:09,230 --> 00:32:11,609 punto 6 de algo que es null 764 00:32:11,609 --> 00:32:15,710 vale, no puede pasar ese caso de prueba 765 00:32:15,710 --> 00:32:17,670 vale 766 00:32:17,670 --> 00:32:18,390 entonces 767 00:32:18,390 --> 00:32:23,589 si uno tiene acceso a esta clase 768 00:32:23,589 --> 00:32:25,630 lo normal es que 769 00:32:25,630 --> 00:32:27,470 estas clases, cuando hay colecciones 770 00:32:27,470 --> 00:32:29,490 se generen con 771 00:32:29,490 --> 00:32:31,569 la lista ya inicializada 772 00:32:31,569 --> 00:32:33,609 pero sin elementos, precisamente para evitar 773 00:32:33,609 --> 00:32:34,970 eso, ¿verdad? 774 00:32:39,140 --> 00:32:40,960 entonces ya solo con este cambio de aquí 775 00:32:40,960 --> 00:32:46,279 solo con este 776 00:32:46,279 --> 00:32:50,490 cambio, ese null pointer 777 00:32:50,490 --> 00:32:51,049 ya no está 778 00:32:51,049 --> 00:32:53,569 ese null pointer ya no está 779 00:32:53,569 --> 00:32:55,009 lo que pasa es que 780 00:32:55,009 --> 00:32:56,650 como esto es cero 781 00:32:56,650 --> 00:32:58,089 pues no va a entrar en este bucle 782 00:32:58,089 --> 00:33:00,349 y no va a mostrar asignaturas, pero eso está bien 783 00:33:00,349 --> 00:33:01,789 no va a mostrar asignaturas, ya está 784 00:33:01,789 --> 00:33:04,509 ¿vale? con este cambio ya 785 00:33:04,509 --> 00:33:05,250 ese no va a estar 786 00:33:05,250 --> 00:33:08,470 vamos a volver a pasar este caso 787 00:33:08,470 --> 00:33:12,019 de prueba, vale 788 00:33:12,019 --> 00:33:14,119 asignaturas vacío, a ver otra 789 00:33:14,119 --> 00:33:16,420 cosa es que dijéramos, oye si no hay asignaturas 790 00:33:16,420 --> 00:33:18,460 que ponga un mensaje 791 00:33:18,460 --> 00:33:20,119 no está matriculado de nada 792 00:33:20,119 --> 00:33:22,339 pero bueno, eso sería un cambio similar al que hemos hecho 793 00:33:22,339 --> 00:33:23,799 ¿vale? similar al que hemos hecho 794 00:33:23,799 --> 00:33:28,259 bueno, estos métodos 795 00:33:28,259 --> 00:33:29,740 vale, parece que 796 00:33:29,740 --> 00:33:30,380 que están 797 00:33:30,380 --> 00:33:34,529 vale 798 00:33:34,529 --> 00:33:37,849 pero este de aquí operaciones 799 00:33:37,849 --> 00:33:39,890 es que nos da mucho juego 800 00:33:39,890 --> 00:33:41,609 este de mostrar datos 801 00:33:41,609 --> 00:33:47,730 vamos a otra vez a este for 802 00:33:47,730 --> 00:33:48,470 que recorre 803 00:33:48,470 --> 00:33:52,950 otra vez a ese for que recorre 804 00:33:52,950 --> 00:33:55,410 si pudiéramos evitar de alguna manera 805 00:33:55,410 --> 00:33:56,869 tener que hacer ese for 806 00:33:56,869 --> 00:33:58,690 todo el rato, ir uno por uno 807 00:33:58,690 --> 00:34:01,089 si es igual, no habrá un método que me devuelva 808 00:34:01,089 --> 00:34:02,990 ya directamente algo 809 00:34:02,990 --> 00:34:03,869 no puede haber algo 810 00:34:03,869 --> 00:34:06,690 pues realmente la interfaz list 811 00:34:06,690 --> 00:34:08,869 tiene tropecientos métodos, a lo mejor 812 00:34:08,869 --> 00:34:10,909 hay alguno que nos permite hacer esto 813 00:34:10,909 --> 00:34:11,590 de otra manera 814 00:34:11,590 --> 00:34:13,369 vale 815 00:34:13,369 --> 00:34:16,610 no os perdáis, estamos al mismo punto 816 00:34:16,610 --> 00:34:18,909 en el punto de recorrer mi lista 817 00:34:18,909 --> 00:34:20,849 hasta ubicar el alumno 818 00:34:20,849 --> 00:34:22,769 cuya matrícula es 819 00:34:22,769 --> 00:34:24,969 igual que la que me han dado, estamos en este punto 820 00:34:24,969 --> 00:34:26,909 vale, pero vamos 821 00:34:26,909 --> 00:34:28,849 a seguir viendo métodos de list para ver 822 00:34:28,849 --> 00:34:30,010 otra forma de hacer esto 823 00:34:30,010 --> 00:34:32,110 pues en este mismo mostrar datos 824 00:34:32,110 --> 00:34:34,829 otras formas de recorrer 825 00:34:34,829 --> 00:34:36,329 la lista, otras formas 826 00:34:36,329 --> 00:34:38,050 vamos a poner 827 00:34:38,050 --> 00:34:39,789 aquí 828 00:34:39,789 --> 00:34:42,630 otra forma más, otra cosa que se puede 829 00:34:42,630 --> 00:34:42,969 hacer 830 00:34:42,969 --> 00:34:53,250 vamos a ver que métodos me ofrece a mi list 831 00:34:53,250 --> 00:34:55,030 a ver si hay alguno que me ofrece cosas 832 00:34:55,030 --> 00:34:57,010 que me gusten 833 00:34:57,010 --> 00:34:58,869 joe, que no quería yo esto, quería la 834 00:34:58,869 --> 00:34:59,769 vale 835 00:34:59,769 --> 00:35:09,900 a ver, venga, otra 836 00:35:09,900 --> 00:35:11,780 cosa que se puede hacer, aquí está, vamos 837 00:35:11,780 --> 00:35:13,539 vamos a ver que me ofrece la lista 838 00:35:13,539 --> 00:35:16,880 alumnos 839 00:35:16,880 --> 00:35:20,869 pues me ofrece aquí un montón de morralla 840 00:35:20,869 --> 00:35:23,690 de historias de añadir de patatín 841 00:35:23,690 --> 00:35:27,610 de no sé qué, de rollos patateros 842 00:35:27,610 --> 00:35:31,269 y de repente me veo este método 843 00:35:31,269 --> 00:35:35,929 que me gusta, este método te da 844 00:35:35,929 --> 00:35:38,909 la posición donde está 845 00:35:38,909 --> 00:35:42,909 un objeto igual a este 846 00:35:42,909 --> 00:35:47,530 si uno describe, si uno mira la ayuda del index of 847 00:35:47,530 --> 00:35:48,869 mira la ayuda 848 00:35:48,869 --> 00:35:51,829 te dice, oye 849 00:35:51,829 --> 00:35:54,110 te devuelve la posición 850 00:35:54,110 --> 00:35:55,909 de la primera ocurrencia 851 00:35:55,909 --> 00:35:57,909 que encuentra de un elemento 852 00:35:57,909 --> 00:35:59,929 igual a este 853 00:35:59,929 --> 00:36:01,929 según el método equals 854 00:36:01,929 --> 00:36:02,730 es que te lo explica 855 00:36:02,730 --> 00:36:05,230 según el método equals 856 00:36:05,230 --> 00:36:07,570 te devuelve 857 00:36:07,570 --> 00:36:09,150 la primera ocurrencia 858 00:36:09,150 --> 00:36:10,670 en esta lista 859 00:36:10,670 --> 00:36:13,530 de un objeto igual a este que le pasas 860 00:36:13,530 --> 00:36:14,909 según el equals 861 00:36:14,909 --> 00:36:16,829 cuando encuentra uno 862 00:36:16,829 --> 00:36:18,170 get i que es igual a este 863 00:36:18,170 --> 00:36:20,550 y este devuelve menos uno 864 00:36:20,550 --> 00:36:21,110 si no hay ninguno 865 00:36:21,110 --> 00:36:24,449 hombre pues justo, perfecto 866 00:36:24,449 --> 00:36:25,869 le voy a pasar un objeto igual 867 00:36:25,869 --> 00:36:28,210 a ese que tiene esa matrícula 868 00:36:28,210 --> 00:36:30,510 y que me devuelva la posición 869 00:36:30,510 --> 00:36:32,849 y ya lo tengo, no tengo que hacer un for 870 00:36:32,849 --> 00:36:33,670 ni tengo que hacer nada 871 00:36:33,670 --> 00:36:36,769 es decir, podemos hacer esto 872 00:36:36,769 --> 00:36:46,079 este método 873 00:36:46,079 --> 00:36:48,440 si yo le paso un objeto 874 00:36:48,440 --> 00:36:49,400 igual 875 00:36:49,400 --> 00:36:56,559 un objeto igual a uno con ese número 876 00:36:56,559 --> 00:36:58,760 de matrícula, si yo le paso esto 877 00:36:58,760 --> 00:37:03,190 vamos, como no tengo un constructor 878 00:37:03,190 --> 00:37:05,190 solo con un número de matrícula, vamos a construir 879 00:37:05,190 --> 00:37:11,280 aquí, new alumno 880 00:37:11,280 --> 00:37:12,960 y ahora le pongo 881 00:37:12,960 --> 00:37:15,059 aux.set 882 00:37:15,980 --> 00:37:17,300 num matrícula 883 00:37:17,300 --> 00:37:19,159 vale 884 00:37:19,159 --> 00:37:29,309 ala, pues que me devuelve 885 00:37:29,309 --> 00:37:29,809 esto 886 00:37:29,809 --> 00:37:32,949 me devuelve la posición 887 00:37:32,949 --> 00:37:35,070 del primer 888 00:37:35,070 --> 00:37:36,710 objeto alumno que se encuentra 889 00:37:36,710 --> 00:37:38,050 igual que este 890 00:37:38,050 --> 00:37:40,849 y recordad que la igualdad de alumno 891 00:37:40,849 --> 00:37:42,530 va por número de matrícula 892 00:37:42,530 --> 00:37:44,570 la igualdad de alumno va por número de matrícula 893 00:37:44,570 --> 00:37:45,070 que está aquí 894 00:37:45,070 --> 00:37:46,929 va por número de matrícula 895 00:37:46,929 --> 00:37:52,460 luego me va a devolver 896 00:37:52,460 --> 00:37:53,860 una posición 897 00:37:53,860 --> 00:37:55,780 que es la del primer alumno 898 00:37:55,780 --> 00:37:57,480 que se encuentra igual que este 899 00:37:57,480 --> 00:37:59,820 y como este tiene como número de matrícula 900 00:37:59,820 --> 00:38:00,519 la que me han pasado 901 00:38:00,519 --> 00:38:03,480 pues me va a devolver 902 00:38:03,480 --> 00:38:04,780 la primera posición 903 00:38:04,780 --> 00:38:06,539 que se encuentra con un alumno 904 00:38:06,539 --> 00:38:07,800 cuyo número de matrícula es ese 905 00:38:07,800 --> 00:38:12,480 luego el alumno que estoy buscando es este 906 00:38:12,480 --> 00:38:15,219 es este, ya lo tengo 907 00:38:15,219 --> 00:38:16,579 ni for ni nada 908 00:38:16,579 --> 00:38:18,920 este es el alumno que estoy buscando 909 00:38:18,920 --> 00:38:27,679 este es el alumno que estoy buscando 910 00:38:27,679 --> 00:38:29,659 este, el alumno 911 00:38:29,659 --> 00:38:31,440 que está en la 912 00:38:31,440 --> 00:38:36,000 posición, de vuelta 913 00:38:36,000 --> 00:38:38,000 por este método, es el alumno que estoy buscando 914 00:38:38,000 --> 00:38:40,119 y de este es del que tengo que construir el informe 915 00:38:40,119 --> 00:38:42,019 este es el alumno 916 00:38:42,019 --> 00:38:50,880 que busco, ya está 917 00:38:50,880 --> 00:38:52,739 no tengo que hacer for ni tengo que hacer nada 918 00:38:52,739 --> 00:38:54,099 este es mi alumno 919 00:38:54,099 --> 00:39:02,730 este es 920 00:39:02,730 --> 00:39:05,250 Y ya con este alumno 921 00:39:05,250 --> 00:39:06,789 Pues puedo hacer todo esto de aquí 922 00:39:06,789 --> 00:39:07,849 Todo esto que he hecho aquí 923 00:39:07,849 --> 00:39:10,829 Todo esto que he hecho 924 00:39:10,829 --> 00:39:12,989 No tengo que meterlo en un for ni nada 925 00:39:12,989 --> 00:39:14,769 Todo esto que he hecho aquí 926 00:39:14,769 --> 00:39:17,690 Todo esto 927 00:39:17,690 --> 00:39:20,610 Ya está 928 00:39:20,610 --> 00:39:24,500 Es este 929 00:39:24,500 --> 00:39:28,099 Y esto con alumno 930 00:39:28,099 --> 00:39:32,039 Con alumno 931 00:39:32,039 --> 00:39:47,840 Vale, pues este podría ser el código de mi método 932 00:39:47,840 --> 00:39:48,960 Exactamente ese 933 00:39:48,960 --> 00:39:54,739 luego con los métodos de las listas 934 00:39:54,739 --> 00:39:55,860 se pueden hacer un montón de cosas 935 00:39:55,860 --> 00:39:58,980 ¿vale? pues ya conocemos este 936 00:39:58,980 --> 00:40:01,099 le pasas un objeto 937 00:40:01,099 --> 00:40:02,840 te busca la primera 938 00:40:02,840 --> 00:40:04,880 posición de la lista de un objeto 939 00:40:04,880 --> 00:40:05,920 igual a este 940 00:40:05,920 --> 00:40:08,000 igual según el equals 941 00:40:08,000 --> 00:40:10,920 como nuestro equals es con número de matrícula 942 00:40:11,519 --> 00:40:12,920 pues te devuelve 943 00:40:12,920 --> 00:40:14,480 la primera posición de un objeto 944 00:40:14,480 --> 00:40:16,519 cuyo número de matrícula es igual a la de este 945 00:40:16,519 --> 00:40:18,840 que se la acabamos de poner aquí 946 00:40:18,840 --> 00:40:20,559 te devuelve la posición 947 00:40:20,559 --> 00:40:22,179 y ahora esa posición se la pasas al get 948 00:40:22,179 --> 00:40:24,320 Y ya tienes el alumno que estabas buscando 949 00:40:24,320 --> 00:40:25,920 El alumno con ese número de matrícula 950 00:40:25,920 --> 00:40:28,559 No tienes que meterte en un get to ni en un for ni nada 951 00:40:28,559 --> 00:40:31,099 Ese alumno que buscábamos 952 00:40:31,099 --> 00:40:32,239 Con ese número de matrícula 953 00:40:32,239 --> 00:40:33,300 Y ya con él se hace lo que sea 954 00:40:33,300 --> 00:40:36,460 ¿Vale? 955 00:40:39,139 --> 00:40:40,619 Bueno, merece la pena que lo probemos 956 00:40:40,619 --> 00:40:41,019 Porque 957 00:40:41,019 --> 00:40:49,030 A ver 958 00:40:49,030 --> 00:40:57,480 Venga, este método vamos a denunciar la cabecera 959 00:40:57,480 --> 00:40:59,619 Y lo hacéis ahora vosotros 960 00:40:59,619 --> 00:41:01,940 Matricular a un alumno 961 00:41:01,940 --> 00:41:02,900 De una asignatura 962 00:41:02,900 --> 00:41:05,659 pues este método será 963 00:41:05,659 --> 00:41:17,090 para matricular a un alumno de una asignatura 964 00:41:17,090 --> 00:41:25,449 ¿qué datos usa el secretario? 965 00:41:26,170 --> 00:41:27,989 dime tu número de matrícula, dime la asignatura 966 00:41:27,989 --> 00:41:29,070 y ya estás con los datos 967 00:41:29,070 --> 00:41:31,309 pues esos son los datos que habrá que pasarle 968 00:41:31,309 --> 00:41:34,070 el número de matrícula del alumno 969 00:41:34,070 --> 00:41:36,309 porque es el que le identifica de forma única 970 00:41:36,309 --> 00:41:39,389 matrícula 971 00:41:39,389 --> 00:41:41,429 y la asignatura 972 00:41:41,429 --> 00:41:43,349 que la asignatura hemos dicho que es un string 973 00:41:43,349 --> 00:41:58,039 pues venga este método 974 00:41:58,039 --> 00:41:59,159 habrá que localizar 975 00:41:59,159 --> 00:42:02,159 el alumno con este número de matrícula 976 00:42:02,159 --> 00:42:04,079 y una vez localizado meterle la asignatura 977 00:42:04,079 --> 00:42:06,659 matricular uno de asignatura 978 00:42:06,659 --> 00:42:08,539 venga pues 979 00:42:08,539 --> 00:42:09,800 hacedlo