1 00:00:00,500 --> 00:00:06,719 segunda parte de la corrección del examen de febrero vale si habláis me 2 00:00:06,719 --> 00:00:12,019 estáis autorizando a que yo grabé esta cosa vale entonces vamos a crear archivo 3 00:00:12,019 --> 00:00:19,960 de documento todo el resto ya lo hemos creado anteriormente archivo de 4 00:00:19,960 --> 00:00:25,559 documento y tiene un main no esto también es un 5 00:00:25,559 --> 00:00:29,719 objeto es un archivo de documento luego podré hacer varios archivos de documentos 6 00:00:29,719 --> 00:00:30,820 si yo quiero, ¿vale? 7 00:00:31,199 --> 00:00:33,359 No, porque hemos dicho que hacemos 8 00:00:33,359 --> 00:00:35,240 estático, por lo tanto existe un solo 9 00:00:35,240 --> 00:00:37,539 archivo de documento general, ¿vale? 10 00:00:38,659 --> 00:00:39,100 Entonces, 11 00:00:39,560 --> 00:00:39,780 vale. 12 00:00:41,899 --> 00:00:43,359 Dice, tendrá una única 13 00:00:43,359 --> 00:00:45,700 propiedad static para guardar los documentos, 14 00:00:45,700 --> 00:00:48,000 ¿vale? Entonces, static 15 00:00:48,000 --> 00:00:51,259 documento 16 00:00:52,219 --> 00:00:54,259 array 17 00:00:54,259 --> 00:00:56,679 .com 18 00:00:56,679 --> 00:01:00,939 Se tendrá que llamar de alguna forma, 19 00:01:01,079 --> 00:01:01,780 se llama docs. 20 00:01:03,039 --> 00:01:07,040 Vale, esto será donde pongo todos los documentos que yo creo 21 00:01:07,040 --> 00:01:11,939 Es estático, entonces no habrá objetos archivo de documentos 22 00:01:11,939 --> 00:01:14,959 Utilizaré directamente archivo de documentos 23 00:01:14,959 --> 00:01:17,099 Nunca haré new 24 00:01:17,099 --> 00:01:21,120 Archivo de documentos x es igual a new archivo de documentos 25 00:01:21,120 --> 00:01:21,959 Eso no se hace 26 00:01:21,959 --> 00:01:23,799 Vale 27 00:01:23,799 --> 00:01:27,079 Porque es estático, me pide que sea estático 28 00:01:27,079 --> 00:01:29,620 Entonces, a partir de aquí 29 00:01:29,620 --> 00:01:32,700 Pues vamos a rellenar documentos 30 00:01:32,700 --> 00:01:33,120 ¿Vale? 31 00:01:33,540 --> 00:01:35,180 Esto lo pongo privado 32 00:01:35,180 --> 00:01:40,189 Así, desde fuera 33 00:01:40,189 --> 00:01:41,930 No acceden a mis documentos 34 00:01:41,930 --> 00:01:43,730 Solo puedes acceder 35 00:01:43,730 --> 00:01:45,430 Con métodos controlados 36 00:01:45,430 --> 00:01:46,930 Y que he hecho yo de esta clase 37 00:01:46,930 --> 00:01:47,730 ¿Sí? 38 00:01:48,390 --> 00:01:49,609 Primer método 39 00:01:49,609 --> 00:01:50,670 Rellenamos algo 40 00:01:50,670 --> 00:01:51,129 ¿Vale? 41 00:01:51,230 --> 00:01:52,670 Entonces, public 42 00:01:52,670 --> 00:01:55,370 Void 43 00:01:55,370 --> 00:01:57,290 Rellena 44 00:01:57,290 --> 00:01:59,129 Para rellenar 45 00:01:59,129 --> 00:02:00,430 ¿Qué necesito? 46 00:02:01,569 --> 00:02:02,689 Ah, no, nada 47 00:02:02,689 --> 00:02:03,430 No necesito nada 48 00:02:03,430 --> 00:02:05,370 Porque rellena lo que me habíamos dicho 49 00:02:05,370 --> 00:02:06,409 Que hace dos cosas 50 00:02:06,409 --> 00:02:09,889 Me pide los datos para un audio 51 00:02:09,889 --> 00:02:13,090 Los datos para un texto 52 00:02:13,090 --> 00:02:14,870 Y añade un audio a un texto 53 00:02:14,870 --> 00:02:16,009 Siempre que se añade un audio 54 00:02:16,009 --> 00:02:16,710 Se añade un texto 55 00:02:16,710 --> 00:02:18,349 Claramente se añade un audio 56 00:02:18,349 --> 00:02:19,770 Es la 57 00:02:19,770 --> 00:02:21,449 ¿Cómo se dice? 58 00:02:22,969 --> 00:02:24,969 Es la transcripción 59 00:02:24,969 --> 00:02:25,469 Muy bien 60 00:02:25,469 --> 00:02:27,449 Y si se añade un texto es leído 61 00:02:27,449 --> 00:02:29,689 Para los no vivientes 62 00:02:29,689 --> 00:02:30,050 ¿Vale? 63 00:02:30,050 --> 00:02:33,889 Vamos a ver 64 00:02:33,889 --> 00:02:34,770 Que hacemos 65 00:02:34,770 --> 00:02:35,650 Entonces 66 00:02:35,650 --> 00:02:39,349 Necesito dos espacios en Docks 67 00:02:39,349 --> 00:02:41,949 Entonces aquí hay dos opciones 68 00:02:41,949 --> 00:02:43,789 O Docks está vacío 69 00:02:43,789 --> 00:02:45,669 O Docks no está vacío 70 00:02:45,669 --> 00:02:48,689 Si Docks está vacío 71 00:02:48,689 --> 00:02:49,650 Lo creo 72 00:02:49,650 --> 00:02:51,729 Si Docks no está vacío 73 00:02:51,729 --> 00:02:53,229 Tendré que pillar Docks 74 00:02:53,229 --> 00:02:54,870 Añadirle dos espacios 75 00:02:54,870 --> 00:02:56,889 Y añadirle las dos cosas 76 00:02:56,889 --> 00:02:58,830 Si lo habéis hecho que al principio 77 00:02:58,830 --> 00:03:00,629 Docs tiene 25 posiciones 78 00:03:00,629 --> 00:03:02,110 Vacías 79 00:03:02,110 --> 00:03:03,909 O sea, null 80 00:03:03,909 --> 00:03:06,189 Y que una vez deberíais haber 81 00:03:06,189 --> 00:03:08,330 Gestionado algo, aparte de gestionar 82 00:03:08,330 --> 00:03:10,150 Todas las null que pueden aparecer 83 00:03:10,150 --> 00:03:12,449 Y luego el concepto es que 84 00:03:12,449 --> 00:03:14,590 Cuando haya metido al menos 25 85 00:03:14,590 --> 00:03:16,590 O 50 86 00:03:16,590 --> 00:03:17,409 O lo que habéis puesto 87 00:03:17,409 --> 00:03:20,650 Documentos, debería haber hecho algo 88 00:03:20,650 --> 00:03:21,990 Para añadir más documentos 89 00:03:21,990 --> 00:03:23,669 Como doblar o hacer algo 90 00:03:23,669 --> 00:03:26,110 Habría que gestionar algo sobre este 91 00:03:26,110 --> 00:03:28,490 Array 92 00:03:28,490 --> 00:03:28,969 ¿Vale? 93 00:03:30,370 --> 00:03:30,849 Si 94 00:03:30,849 --> 00:03:32,490 Dox 95 00:03:32,490 --> 00:03:34,689 Es igual a 0 96 00:03:34,689 --> 00:03:43,439 Si quiero ser específico 97 00:03:43,439 --> 00:03:45,139 Esto 98 00:03:45,139 --> 00:03:49,139 Nunca 99 00:03:49,139 --> 00:03:50,580 Nunca, nunca 100 00:03:50,580 --> 00:03:52,819 Esto 101 00:03:52,819 --> 00:04:01,900 Mientras estáis trabajando en esta clase 102 00:04:01,900 --> 00:04:03,219 Si, evitamos problemas 103 00:04:03,219 --> 00:04:05,520 De hecho, el hecho de que me lo haya puesto en azulito 104 00:04:05,520 --> 00:04:08,000 Y que esto sea azulito, me está diciendo que me está refiriendo a eso 105 00:04:08,000 --> 00:04:08,439 ¿Vale? 106 00:04:08,439 --> 00:04:10,360 Mientras que no creé aquí dentro 107 00:04:10,360 --> 00:04:12,599 Otro string 108 00:04:12,599 --> 00:04:14,280 Docs 109 00:04:14,280 --> 00:04:17,000 Y entonces ahora me está pillando 110 00:04:17,000 --> 00:04:17,459 Este de aquí 111 00:04:17,459 --> 00:04:22,129 Entonces si este es null 112 00:04:22,129 --> 00:04:24,389 Entonces lo tengo que crear 113 00:04:24,389 --> 00:04:26,389 Y como cada vez que llamo rellena 114 00:04:26,389 --> 00:04:27,750 Pongo dos 115 00:04:27,750 --> 00:04:28,889 Pues es fácil 116 00:04:28,889 --> 00:04:32,230 Docs es igual a 117 00:04:32,230 --> 00:04:34,389 New documentos 118 00:04:34,389 --> 00:04:36,870 De dos 119 00:04:36,870 --> 00:04:45,529 De esta forma he creado un espacio 120 00:04:45,529 --> 00:04:46,610 De dos posiciones 121 00:04:46,610 --> 00:04:49,269 Vale, si no 122 00:04:49,269 --> 00:04:54,639 Pues ahora tengo 123 00:04:54,639 --> 00:04:56,560 Un problemilla, tengo un array 124 00:04:56,560 --> 00:04:58,339 Que técnicamente está lleno 125 00:04:58,339 --> 00:05:00,720 Y necesito dos posiciones más 126 00:05:00,720 --> 00:05:02,319 Entonces, ¿qué hago? 127 00:05:05,319 --> 00:05:06,120 Documento 128 00:05:06,120 --> 00:05:13,240 Aux 129 00:05:13,240 --> 00:05:14,639 Es igual a new 130 00:05:14,639 --> 00:05:16,620 Documento 131 00:05:16,620 --> 00:05:18,660 ¿De cuántas posiciones? 132 00:05:20,480 --> 00:05:21,480 Docs 133 00:05:21,480 --> 00:05:23,120 Punto length 134 00:05:23,120 --> 00:05:25,360 Más 2 135 00:05:25,360 --> 00:05:32,610 2 136 00:05:32,610 --> 00:05:35,889 Pillo lo que tenía antes 137 00:05:35,889 --> 00:05:36,870 Y le añado 2 138 00:05:36,870 --> 00:05:37,689 ¿Vale? 139 00:05:39,050 --> 00:05:39,730 Fenomenal 140 00:05:39,730 --> 00:05:41,209 ¿Y luego qué hago? 141 00:05:44,660 --> 00:05:45,300 Por 142 00:05:45,300 --> 00:05:48,019 Intis igual a 0 143 00:05:48,019 --> 00:05:49,519 Y más más 144 00:05:49,519 --> 00:05:52,339 Y menor 145 00:05:52,339 --> 00:05:53,660 Que 146 00:05:53,660 --> 00:05:54,779 A 147 00:05:54,779 --> 00:05:57,120 Docs 148 00:05:57,120 --> 00:05:59,500 Punto leng 149 00:05:59,500 --> 00:06:02,600 Y más más 150 00:06:02,600 --> 00:06:05,600 Copio 151 00:06:05,600 --> 00:06:07,660 Aux 152 00:06:07,660 --> 00:06:08,899 De i 153 00:06:08,899 --> 00:06:11,800 Es igual a dox 154 00:06:11,800 --> 00:06:13,120 De i 155 00:06:13,120 --> 00:06:23,920 Es copiado casi todo en dox 156 00:06:23,920 --> 00:06:25,959 Si 157 00:06:25,959 --> 00:06:28,620 Entonces ahora 158 00:06:28,620 --> 00:06:31,540 Que he hecho la copia 159 00:06:31,540 --> 00:06:33,500 Le digo que dox 160 00:06:33,500 --> 00:06:35,000 Es aux 161 00:06:35,000 --> 00:06:38,279 No, pero no aquí 162 00:06:38,279 --> 00:06:46,490 Y ya está 163 00:06:46,490 --> 00:06:49,329 Ahora tengo el mismo que tenía antes 164 00:06:49,329 --> 00:06:51,550 Con dos espacios vacíos al final 165 00:06:51,550 --> 00:06:56,879 ¿Eh? 166 00:06:58,500 --> 00:06:59,180 Miles 167 00:06:59,180 --> 00:07:03,139 No todas 168 00:07:03,139 --> 00:07:05,040 Aceptables 169 00:07:05,040 --> 00:07:06,620 Pero la mayoría 170 00:07:06,620 --> 00:07:08,079 Muchas sí, ¿vale? 171 00:07:08,300 --> 00:07:10,000 Hay objetos para... 172 00:07:10,000 --> 00:07:13,019 Hay funciones de arrays, por ejemplo, para clonar un... 173 00:07:13,019 --> 00:07:17,180 No sé si lo podéis utilizar 174 00:07:17,180 --> 00:07:17,939 No lo sé 175 00:07:17,939 --> 00:07:20,300 Si tenéis otras dudas 176 00:07:20,300 --> 00:07:21,480 Yo lo he hecho de otra forma 177 00:07:21,480 --> 00:07:23,660 Pues me lo preguntáis 178 00:07:23,660 --> 00:07:24,740 ¿Cómo lo has hecho? 179 00:07:40,410 --> 00:07:42,250 Que podía crearme un método 180 00:07:42,250 --> 00:07:43,649 Añadir 181 00:07:43,649 --> 00:07:45,670 Fuera que hiciera eso 182 00:07:45,670 --> 00:07:48,670 Lo hemos hecho en ejercicios de añadir un elemento 183 00:07:48,670 --> 00:07:50,769 Y luego aquí crearme un audio 184 00:07:50,769 --> 00:07:52,230 Añadir el audio, crearme un texto 185 00:07:52,230 --> 00:07:52,970 Añadir el texto 186 00:07:52,970 --> 00:07:57,170 Pero a lo mejor copiaba dos veces 187 00:07:57,170 --> 00:08:00,709 Todo el array cada vez que llamaba rellena 188 00:08:00,709 --> 00:08:01,990 Pues no lo sé, ¿vale? 189 00:08:02,110 --> 00:08:05,389 Como también, ¿tiene sentido que me copie todo el archivo 190 00:08:05,389 --> 00:08:06,970 Cada vez que añado algo? 191 00:08:07,470 --> 00:08:08,290 Pues a lo mejor no 192 00:08:08,290 --> 00:08:09,949 A lo mejor sería mejor decir 193 00:08:09,949 --> 00:08:12,829 Pongo 20 posiciones y cada vez que relleno 194 00:08:12,829 --> 00:08:14,389 Pues duplico, no lo sé 195 00:08:14,389 --> 00:08:14,910 ¿Vale? 196 00:08:15,470 --> 00:08:18,790 En mi caso, la ventaja que tengo es que no hay elementos null 197 00:08:18,790 --> 00:08:20,170 Porque 198 00:08:20,170 --> 00:08:22,230 Y añado solo lo que me interesa 199 00:08:22,230 --> 00:08:23,850 Claramente pierdo en performance 200 00:08:23,850 --> 00:08:26,629 Es decir, que cuando haya un millón de documentos 201 00:08:26,629 --> 00:08:27,870 He añadido dos más 202 00:08:27,870 --> 00:08:30,509 Tengo que copiar un millón de documentos 203 00:08:30,509 --> 00:08:31,750 Y lo que hay que añadir es más 204 00:08:31,750 --> 00:08:34,610 En realidad no se copia el objeto, se copia la referencia 205 00:08:34,610 --> 00:08:36,269 Entonces no debería ser tan lento 206 00:08:36,269 --> 00:08:36,929 Tal, tal, tal 207 00:08:36,929 --> 00:08:37,850 ¿Vale? 208 00:08:38,990 --> 00:08:41,070 Ok, cuando llego aquí 209 00:08:41,070 --> 00:08:43,389 Tengo que crear los nuevos 210 00:08:43,389 --> 00:08:46,090 Documentos y ponerlos 211 00:08:46,090 --> 00:08:46,470 ¿Vale? 212 00:08:46,970 --> 00:08:48,889 Pero cuidado que si estoy aquí 213 00:08:48,889 --> 00:08:51,389 Lo tengo que poner en 0 y 1 214 00:08:51,389 --> 00:08:54,149 Si estoy aquí, o sea, si he pasado por aquí 215 00:08:54,149 --> 00:08:55,450 No lo tengo que poner en 0 y 1 216 00:08:55,450 --> 00:09:01,929 lo tendré que poner en no lo sé casi siempre esto podría solucionar son las 217 00:09:01,929 --> 00:09:07,570 últimas dos posiciones entonces dos puntos lentes de menos 12 puntos 218 00:09:07,570 --> 00:09:15,529 lentes menos dos otra opción es que yo y me lo presten a 219 00:09:15,529 --> 00:09:16,029 aquí 220 00:09:16,029 --> 00:09:22,240 true, me da razón 221 00:09:22,240 --> 00:09:25,080 int i 222 00:09:25,080 --> 00:09:26,720 me lo gestione 223 00:09:26,720 --> 00:09:28,320 desde fuera, vale 224 00:09:28,320 --> 00:09:30,679 si entro aquí, no lo toco 225 00:09:30,679 --> 00:09:32,820 entonces empezaré en 0 y 1 226 00:09:32,820 --> 00:09:36,740 si entro aquí, este 227 00:09:36,740 --> 00:09:37,039 i 228 00:09:37,039 --> 00:09:41,700 lo gestiono 229 00:09:41,700 --> 00:09:43,279 directamente, vale 230 00:09:43,279 --> 00:09:45,539 de esta forma, cuando salgo aquí 231 00:09:45,539 --> 00:09:46,700 i 232 00:09:46,700 --> 00:09:49,419 valdrá la siguiente 233 00:09:49,419 --> 00:09:50,539 posición libre 234 00:09:50,539 --> 00:09:53,200 Si he pasado por aquí, es 0 235 00:09:53,200 --> 00:09:55,000 Si he pasado por aquí 236 00:09:55,000 --> 00:09:57,620 Me habrá llegado hasta docs.length 237 00:09:57,620 --> 00:09:58,980 Docs viejo 238 00:09:58,980 --> 00:10:01,720 ¿Vale? El que tenía menos posiciones 239 00:10:01,720 --> 00:10:03,940 Por lo tanto, docs.length es la nueva 240 00:10:03,940 --> 00:10:05,120 Posición libre 241 00:10:05,120 --> 00:10:08,990 ¿Sí? 242 00:10:09,610 --> 00:10:11,669 Entonces puedo simplemente aquí decir 243 00:10:11,669 --> 00:10:13,590 Vale, ahora me creo un audio 244 00:10:13,590 --> 00:10:16,889 No, ya se lo he sumado aquí 245 00:10:16,889 --> 00:10:19,110 Ha venido aquí 246 00:10:19,110 --> 00:10:21,090 Esto es falso y por lo tanto ha salido 247 00:10:21,090 --> 00:10:22,690 Ya estoy listo 248 00:10:22,690 --> 00:10:29,649 Creo 249 00:10:29,649 --> 00:10:31,629 ¿Qué queréis crear antes? ¿Un audio? 250 00:10:33,269 --> 00:10:33,789 Audio 251 00:10:33,789 --> 00:10:34,610 Entonces 252 00:10:34,610 --> 00:10:38,649 Ahora aquí hablo con el 253 00:10:38,649 --> 00:10:40,110 Usuario 254 00:10:40,110 --> 00:10:41,509 Que me tiene que dar los datos 255 00:10:41,509 --> 00:10:43,590 Por lo tanto necesito unos scanners 256 00:10:43,590 --> 00:10:45,190 Scanner es igual a 257 00:10:45,190 --> 00:10:46,149 New scanner 258 00:10:46,149 --> 00:10:48,389 De systeming 259 00:10:48,389 --> 00:10:55,490 Y me importo este señor 260 00:10:55,490 --> 00:10:57,889 Y ahora le digo 261 00:10:57,889 --> 00:10:59,870 Vale, si esto 262 00:10:59,870 --> 00:11:07,120 Creo un audio 263 00:11:07,120 --> 00:11:15,899 Y le digo 264 00:11:15,899 --> 00:11:21,820 Nivel 265 00:11:21,820 --> 00:11:24,000 De confidencialidad 266 00:11:24,000 --> 00:11:26,259 Y leo su nivel 267 00:11:26,259 --> 00:11:27,200 De confidencialidad 268 00:11:27,200 --> 00:11:30,500 Int, nivel de confidencialidad 269 00:11:30,500 --> 00:11:32,340 Es igual a 270 00:11:32,340 --> 00:11:34,840 Scan.nextint 271 00:11:34,840 --> 00:11:36,919 Si 272 00:11:36,919 --> 00:11:38,960 Luego digo 273 00:11:38,960 --> 00:11:42,399 Dame el contenido 274 00:11:42,399 --> 00:11:44,379 Contenido 275 00:11:44,379 --> 00:11:48,659 Y me leo 276 00:11:48,659 --> 00:11:49,500 Que leo 277 00:11:49,500 --> 00:11:54,179 A ver, aquí es el clásico 278 00:11:54,179 --> 00:11:56,379 Problema de scanner 279 00:11:56,379 --> 00:11:56,840 ¿Vale? 280 00:11:58,080 --> 00:11:58,360 Que 281 00:11:58,360 --> 00:12:01,340 En algunos 282 00:12:01,340 --> 00:12:05,820 En algunos 283 00:12:05,820 --> 00:12:10,080 Ejercicios que hemos hecho 284 00:12:10,080 --> 00:12:12,379 Que leemos estas cosas, a lo mejor lo habéis tirado fuera 285 00:12:12,379 --> 00:12:14,200 ¿Vale? De los viejos 286 00:12:14,200 --> 00:12:19,059 de cuando utilizamos carnet que luego un rato que no lo utilizamos pero sabéis que si leo un 287 00:12:19,059 --> 00:12:29,879 número y luego hago una scan next line no me funciona porque el intro que he dado aquí me 288 00:12:29,879 --> 00:12:38,919 lo pilla aquí entonces hay dos opciones para esto o me gestionó esto haciendo un next line a vacío 289 00:12:38,919 --> 00:12:40,860 Sabiendo que antes 290 00:12:40,860 --> 00:12:43,179 He hecho un 291 00:12:43,179 --> 00:12:44,500 Un nextint 292 00:12:44,500 --> 00:12:46,559 Esto no hace nada 293 00:12:46,559 --> 00:12:47,799 Y luego leo 294 00:12:47,799 --> 00:12:49,940 La siguiente frase 295 00:12:49,940 --> 00:12:52,019 Y esto me permite describir lo que me da la gana 296 00:12:52,019 --> 00:12:53,940 O lo simplifico y digo 297 00:12:53,940 --> 00:12:56,080 Oye mira, que me quito de líos 298 00:12:56,080 --> 00:12:57,820 Leo solo una palabra 299 00:12:57,820 --> 00:13:00,019 El contenido será una palabra sola 300 00:13:00,019 --> 00:13:01,519 ¿Vale? 301 00:13:01,620 --> 00:13:04,419 Esto me da igual, no es parte de este examen 302 00:13:04,419 --> 00:13:05,519 Concretamente 303 00:13:05,519 --> 00:13:08,080 Con que hayáis encontrado una forma de hacerlo 304 00:13:08,080 --> 00:13:10,240 fenomenal, dejámoslo 305 00:13:10,240 --> 00:13:15,830 y finalmente 306 00:13:15,830 --> 00:13:18,389 es un audio 307 00:13:18,389 --> 00:13:20,230 por lo tanto la longitud 308 00:13:20,230 --> 00:13:23,210 o duración 309 00:13:23,210 --> 00:13:27,139 mejor duración 310 00:13:27,139 --> 00:13:28,620 que es también un intro 311 00:13:28,620 --> 00:13:34,870 L 312 00:13:34,870 --> 00:13:37,629 porque en realidad para nosotros es longitud 313 00:13:37,629 --> 00:13:38,269 ¿vale? 314 00:13:38,909 --> 00:13:41,590 con esta información ya puedo crear el audio 315 00:13:41,590 --> 00:13:43,470 oye, cuidado, me falta algo, ¿qué me falta? 316 00:13:50,490 --> 00:13:51,830 ¿qué me falta 317 00:13:51,830 --> 00:13:53,289 para lanzar 318 00:13:53,289 --> 00:13:54,789 Este señor audio 319 00:13:54,789 --> 00:13:56,909 Un ID 320 00:13:56,909 --> 00:14:00,570 Pregunta de un millón de dólares 321 00:14:00,570 --> 00:14:02,610 Se lo pregunto al usuario 322 00:14:02,610 --> 00:14:03,029 El ID 323 00:14:03,029 --> 00:14:10,629 Podrías no hacerlo, podrías preguntárselo 324 00:14:10,629 --> 00:14:12,610 ¿Qué implicaciones tienes 325 00:14:12,610 --> 00:14:13,870 Preguntarla al usuario? 326 00:14:17,580 --> 00:14:19,039 ¿Qué sentido tiene 327 00:14:19,039 --> 00:14:21,019 Un identificador que se puede repetir? 328 00:14:22,200 --> 00:14:22,960 Ninguno 329 00:14:22,960 --> 00:14:25,759 Entonces cuidado con lo que hacéis 330 00:14:25,759 --> 00:14:28,000 Si la habéis puesto aquí 331 00:14:28,000 --> 00:14:29,399 Que pedís al usuario 332 00:14:29,399 --> 00:14:31,600 el nombre del fichero 333 00:14:31,600 --> 00:14:33,860 luego tenéis que haber recorrido 334 00:14:33,860 --> 00:14:35,639 todo docs a la búsqueda 335 00:14:35,639 --> 00:14:37,500 de si ese nombre existe ya 336 00:14:37,500 --> 00:14:39,360 y si existe ya decirle 337 00:14:39,360 --> 00:14:41,580 este nombre no es válido 338 00:14:41,580 --> 00:14:46,240 es a largo plazo 339 00:14:46,240 --> 00:14:48,539 la otra opción cual es 340 00:14:48,539 --> 00:14:51,240 que implícitamente con vuestro 341 00:14:51,240 --> 00:14:52,580 poder deductivo 342 00:14:52,580 --> 00:14:54,580 podíais deducir desde 343 00:14:54,580 --> 00:14:56,799 el ejemplo que os he pasado yo 344 00:14:56,799 --> 00:15:03,200 pregunta 345 00:15:03,200 --> 00:15:05,700 Sherlock Holmes 346 00:15:05,700 --> 00:15:16,620 número 1. No está en verde. Esto quiere decir que no lo ha escrito el usuario. Y fijaos, 347 00:15:16,799 --> 00:15:30,220 audio 1, texto 2, audio 3, texto 4. ¿Qué os hace pensar esto? Que hay un numerito que 348 00:15:30,220 --> 00:15:38,000 no va por audio o por texto, sino que va por documento, que me añade detrás un número 349 00:15:38,000 --> 00:15:46,399 único. Y ese número único lo hago con static. ¿Es la única forma de hacerlo? No. Es una 350 00:15:46,399 --> 00:15:56,200 forma de hacerlo. De hecho, porque soy magnánimo, en aquí, Sara, si no me equivoco, va a intentar 351 00:15:56,200 --> 00:16:09,029 leer audio 2. Y no le dice, no tienes acceso a audio 2. Te dice, no existe este documento. 352 00:16:09,029 --> 00:16:13,110 Cosa que es muy fea para un archivo de documentos secretos 353 00:16:13,110 --> 00:16:15,950 Porque cuantas menos informaciones das 354 00:16:15,950 --> 00:16:17,710 Mejor, mírame audio 2 355 00:16:17,710 --> 00:16:20,669 No tienes acceso, no existe 356 00:16:20,669 --> 00:16:22,529 Porque me estás diciendo que no existe este documento 357 00:16:22,529 --> 00:16:25,529 De esa forma, si no me estás contestando eso, sé que existe 358 00:16:25,529 --> 00:16:27,250 Muy malo 359 00:16:27,250 --> 00:16:30,830 Pero independientemente de nuestras tramas conspiratorias 360 00:16:30,830 --> 00:16:32,970 El concepto es que 361 00:16:32,970 --> 00:16:38,509 La idea es que si es un identificador 362 00:16:38,509 --> 00:16:40,370 Tiene que ser un identificador 363 00:16:40,370 --> 00:16:42,470 Entonces lo deberíais 364 00:16:42,470 --> 00:16:44,690 Haber hecho como identificador 365 00:16:44,690 --> 00:16:46,350 Si habéis hecho 366 00:16:46,350 --> 00:16:47,850 Que yo puedo poner tres 367 00:16:47,850 --> 00:16:49,429 Cosas con el mismo nombre 368 00:16:49,429 --> 00:16:50,990 Tenemos un pequeño problema 369 00:16:50,990 --> 00:16:54,509 Vamos a ver 370 00:16:54,509 --> 00:16:56,389 Como lo hacemos 371 00:16:56,389 --> 00:16:57,490 Aquí entonces 372 00:16:57,490 --> 00:17:00,570 Lo que voy a hacer 373 00:17:00,570 --> 00:17:02,610 Yo es como lo había pensado 374 00:17:02,610 --> 00:17:02,970 Acá 375 00:17:02,970 --> 00:17:04,049 Que es 376 00:17:04,049 --> 00:17:05,349 Static 377 00:17:05,349 --> 00:17:08,789 private static 378 00:17:08,789 --> 00:17:10,509 numdoc 379 00:17:10,509 --> 00:17:13,190 igual a cero 380 00:17:13,190 --> 00:17:22,460 tiene un valor numdoc 381 00:17:22,460 --> 00:17:25,099 que es estático, vale por toda la clase 382 00:17:25,099 --> 00:17:27,859 y cada vez que crearé un documento 383 00:17:27,859 --> 00:17:29,259 se lo pego como 384 00:17:29,259 --> 00:17:31,299 nombre 385 00:17:31,299 --> 00:17:32,680 y además 386 00:17:32,680 --> 00:17:35,180 lo sumo uno 387 00:17:35,180 --> 00:17:36,779 vale, entonces cuando he llegado aquí 388 00:17:36,779 --> 00:17:38,740 que tengo toda la información para este audio 389 00:17:38,740 --> 00:17:40,319 me creo un nuevo audio 390 00:17:40,319 --> 00:17:42,400 Entonces audio 391 00:17:42,400 --> 00:17:44,319 Aud es igual a 392 00:17:44,319 --> 00:17:45,759 New audio de 393 00:17:45,759 --> 00:17:47,779 Nombre 394 00:17:47,779 --> 00:17:50,759 Nombre lo llamo audio 395 00:17:50,759 --> 00:17:52,559 Mas 396 00:17:52,559 --> 00:17:54,279 Num, como lo he llamado 397 00:17:54,279 --> 00:17:55,400 Un doc 398 00:17:55,400 --> 00:17:57,339 Un doc 399 00:17:57,339 --> 00:18:03,099 Si 400 00:18:03,099 --> 00:18:06,900 Coma, me lo debería dar ahora 401 00:18:06,900 --> 00:18:11,079 Probablemente al punto de coma final me lo dirá 402 00:18:11,079 --> 00:18:13,039 Luego le tengo que 403 00:18:13,039 --> 00:18:15,039 dar, el siguiente es el nivel 404 00:18:15,039 --> 00:18:17,099 de confidencialidad, NC, lo he leído 405 00:18:17,099 --> 00:18:19,140 luego después el contenido 406 00:18:19,140 --> 00:18:20,779 cont, lo he leído 407 00:18:20,779 --> 00:18:22,220 y luego la longitud, L 408 00:18:22,220 --> 00:18:24,900 punto y coma, y ya está 409 00:18:24,900 --> 00:18:29,019 si no me gusta que ponga 410 00:18:29,019 --> 00:18:30,500 audio 1, texto 2 411 00:18:30,500 --> 00:18:32,759 pues lo que puede hacer 412 00:18:32,759 --> 00:18:33,920 siempre aquí es llamarlo doc 413 00:18:33,920 --> 00:18:36,799 entonces saldrá doc1, doc2, doc3 414 00:18:36,799 --> 00:18:38,480 doc4, son documentos 415 00:18:38,480 --> 00:18:40,599 os acordaos también que el 416 00:18:40,599 --> 00:18:42,900 identificador no necesariamente es una palabra como se llama 417 00:18:42,900 --> 00:18:44,740 Es un identificador interno 418 00:18:44,740 --> 00:18:47,779 Podría ser AXFNP 419 00:18:47,779 --> 00:18:50,619 Lo dejo como out 420 00:18:50,619 --> 00:18:52,720 Porque así cuando me lo escribe 421 00:18:52,720 --> 00:18:54,000 Si puedo le digo 422 00:18:54,000 --> 00:18:57,539 Cuando es un audio me tendrá que escribir 423 00:18:57,539 --> 00:18:59,299 Que lo escucha 424 00:18:59,299 --> 00:19:00,319 Y cuando es un texto 425 00:19:00,319 --> 00:19:01,960 Para ayudarme a mí en el debug 426 00:19:01,960 --> 00:19:06,660 Y luego vuelvo a rehacer todo 427 00:19:06,660 --> 00:19:09,859 Pero para el texto 428 00:19:09,859 --> 00:19:34,930 Pero ahora en vez de crear un audio 429 00:19:34,930 --> 00:19:36,109 Creo un texto 430 00:19:36,109 --> 00:19:39,890 Podría haber sacado esto en un fichero externo 431 00:19:39,890 --> 00:19:44,529 Y haber hecho algo para que me creara esta cosa 432 00:19:44,529 --> 00:19:47,930 Probablemente toda la parte hasta la duración 433 00:19:47,930 --> 00:19:49,970 O hasta el número de páginas es la misma 434 00:19:49,970 --> 00:19:53,750 Entonces podría haber al menos parte de esto sacado 435 00:19:53,750 --> 00:19:55,849 Creo un texto 436 00:19:55,849 --> 00:19:58,390 Nivel de confianza lo pongo en cct 437 00:19:58,390 --> 00:20:00,549 Lo pongo en cct 438 00:20:00,549 --> 00:20:02,089 Lo pongo en 439 00:20:02,089 --> 00:20:03,990 Np 440 00:20:03,990 --> 00:20:07,029 Y luego 441 00:20:07,029 --> 00:20:09,250 Cuando lo creo no es un audio 442 00:20:09,250 --> 00:20:10,910 Si no es un texto 443 00:20:10,910 --> 00:20:13,269 Texto 444 00:20:13,269 --> 00:20:14,190 Tx 445 00:20:14,190 --> 00:20:17,230 Es un nuevo 446 00:20:17,230 --> 00:20:18,509 Texto 447 00:20:18,509 --> 00:20:20,849 Que ponga dentro texto 448 00:20:20,849 --> 00:20:22,930 Que tenga dentro 449 00:20:22,930 --> 00:20:23,950 Más este no 450 00:20:23,950 --> 00:20:26,609 Esto es 451 00:20:26,609 --> 00:20:29,349 Np 452 00:20:29,349 --> 00:20:31,630 Esto es nft 453 00:20:31,630 --> 00:20:32,589 Y esto es content 454 00:20:32,589 --> 00:20:33,950 Lo que he utilizado aquí 455 00:20:33,950 --> 00:20:38,009 No he reutilizado las variables 456 00:20:38,009 --> 00:20:40,230 Porque me daba gana 457 00:20:40,230 --> 00:20:42,490 Lo podría haber reutilizado tranquilamente 458 00:20:42,490 --> 00:20:44,190 Lo que pasa es que 459 00:20:44,190 --> 00:20:46,269 Acordaos que este numdoc tiene que crecer 460 00:20:46,269 --> 00:20:48,630 Numdoc 461 00:20:48,630 --> 00:20:49,410 Más más 462 00:20:49,410 --> 00:21:01,410 Ahora tengo 463 00:21:01,410 --> 00:21:02,430 Perdón 464 00:21:02,430 --> 00:21:04,549 Tengo 465 00:21:04,549 --> 00:21:07,410 He hecho los dos objetos 466 00:21:07,410 --> 00:21:10,089 Y ahora los dos objetos los tengo que poner 467 00:21:10,089 --> 00:21:12,329 En docs 468 00:21:12,329 --> 00:21:13,410 ¿Vale? 469 00:21:13,569 --> 00:21:15,089 Entonces en docs 470 00:21:15,089 --> 00:21:16,730 De i 471 00:21:16,730 --> 00:21:19,029 Pondré out 472 00:21:19,029 --> 00:21:21,250 I++ 473 00:21:21,250 --> 00:21:23,849 Docs 474 00:21:23,849 --> 00:21:24,589 De i 475 00:21:24,589 --> 00:21:26,990 Pondré xt 476 00:21:26,990 --> 00:21:33,710 No hace falta hacer i++ 477 00:21:33,710 --> 00:21:36,269 Porque ya i no la uso más 478 00:21:39,470 --> 00:21:39,990 Porque 479 00:21:39,990 --> 00:21:41,970 ¿Te acuerdas que ahí la había 480 00:21:41,970 --> 00:21:44,190 Metida de tal forma 481 00:21:44,190 --> 00:21:45,990 Que cuando salía del primer punto 482 00:21:45,990 --> 00:21:48,609 Y me apuntaba a la siguiente 483 00:21:48,609 --> 00:21:49,529 Posición libre 484 00:21:49,529 --> 00:21:50,410 Por tanto lo uso 485 00:21:50,410 --> 00:21:53,069 Lo he hecho por esa razón 486 00:21:53,069 --> 00:21:55,349 Para que ahora no tenga que ir a buscarme 487 00:21:55,349 --> 00:21:56,170 ¿Cuál es la primera libre? 488 00:21:56,549 --> 00:21:57,910 No, sé que la primera es ahí 489 00:21:57,910 --> 00:21:59,410 Y en realidad 490 00:21:59,410 --> 00:22:00,769 Voy a hacer así 491 00:22:00,769 --> 00:22:04,069 No, peligro 492 00:22:04,069 --> 00:22:05,569 Porque Nundog crecerá 493 00:22:05,569 --> 00:22:08,230 Crecerá Nundog 494 00:22:08,230 --> 00:22:10,430 Bueno, entonces dices cuando hay... 495 00:22:10,430 --> 00:22:19,670 Oye, pero estás mezclando ya muchas cosas. 496 00:22:19,730 --> 00:22:25,349 Sí, pero considera que cuando llega aquí, NumDoc ya ha aumentado de dos. 497 00:22:25,730 --> 00:22:28,269 O sea, lo deberías haber hecho esto aquí. 498 00:22:29,509 --> 00:22:31,250 Sí, y cosa por eso. 499 00:22:31,309 --> 00:22:33,109 Pero estás mezclando dos conceptos. 500 00:22:33,190 --> 00:22:36,890 Uno es el identificador de cuántos documentos has creado por ahora 501 00:22:36,890 --> 00:22:40,650 y otro es la posición en libre. 502 00:22:40,730 --> 00:22:41,789 Yo lo dejaría separado. 503 00:22:41,789 --> 00:22:44,069 Tanto, o sea, no lo ganas 504 00:22:44,069 --> 00:22:46,410 Al nivel de, que aquí luego lo tienes que copiar 505 00:22:46,410 --> 00:22:47,910 Igualmente, lo tienes que hacer, por lo tanto 506 00:22:47,910 --> 00:22:49,390 Estás ganando una favor nada 507 00:22:49,390 --> 00:22:52,369 No que esto sea un maravilloso sistema 508 00:22:52,369 --> 00:22:53,369 Para hacer esto, eh 509 00:22:53,369 --> 00:22:55,150 En nuestro examen 510 00:22:55,150 --> 00:22:57,910 Vale, esto era rellena 511 00:22:57,910 --> 00:23:01,230 Cada vez que llamo rellena 512 00:23:01,230 --> 00:23:04,049 Me añade un documento, me pide la información 513 00:23:04,049 --> 00:23:06,210 De un texto, eh, pues sostancialmente 514 00:23:06,210 --> 00:23:08,210 Esto, vale, cuando yo llamo rellena 515 00:23:08,829 --> 00:23:11,509 Aquí se está llamando rellena 516 00:23:11,509 --> 00:23:15,470 Lo que me está haciendo es 517 00:23:15,470 --> 00:23:17,210 Creo dos documentos 518 00:23:17,210 --> 00:23:19,009 Audio 1 y me pide 519 00:23:19,009 --> 00:23:21,109 Las varias cosas, texto 2 520 00:23:21,109 --> 00:23:23,609 Y me pide las varias cosas y aquí ya la he creado 521 00:23:23,609 --> 00:23:24,890 Y la he metido en el documento 522 00:23:24,890 --> 00:23:26,190 Es la primera parte 523 00:23:26,190 --> 00:23:29,150 Podría ya empezar con un 524 00:23:29,150 --> 00:23:31,009 Main para probar rellena 525 00:23:31,009 --> 00:23:33,309 Que sería esta parte aquí del main 526 00:23:33,309 --> 00:23:34,029 ¿Vale? 527 00:23:34,650 --> 00:23:36,829 Esto, archivo de documentos punto rellena 528 00:23:36,829 --> 00:23:37,849 Archivo de documentos punto rellena 529 00:23:37,849 --> 00:23:40,009 Cuidado, no estoy haciendo ningún new 530 00:23:40,009 --> 00:23:42,130 Porque es todo staff 531 00:23:42,130 --> 00:23:44,769 Preguntas hasta aquí 532 00:23:44,769 --> 00:23:50,059 Vale 533 00:23:50,059 --> 00:23:56,119 Entonces paso al siguiente 534 00:23:56,119 --> 00:23:57,759 Leer documentos 535 00:23:57,759 --> 00:23:59,720 Lo que me hace es 536 00:23:59,720 --> 00:24:01,400 Recibe un operador y un parámetro 537 00:24:01,400 --> 00:24:02,660 El parámetro es un id 538 00:24:02,660 --> 00:24:05,619 Perdón, recibe dos parámetros 539 00:24:05,619 --> 00:24:07,619 Que son 540 00:24:07,619 --> 00:24:09,119 Operador e id 541 00:24:09,119 --> 00:24:11,619 Entonces leer 542 00:24:11,619 --> 00:24:13,339 Public 543 00:24:13,339 --> 00:24:15,279 Void 544 00:24:15,279 --> 00:24:18,720 leer documento 545 00:24:18,720 --> 00:24:19,460 es void 546 00:24:19,460 --> 00:24:22,460 lo escribe, ¿no? 547 00:24:23,599 --> 00:24:25,680 si es correcto 548 00:24:25,680 --> 00:24:27,460 lo muestra, ¿vale? 549 00:24:27,599 --> 00:24:29,220 leer documento 550 00:24:29,220 --> 00:24:29,740 de 551 00:24:29,740 --> 00:24:33,259 operador 552 00:24:33,259 --> 00:24:33,980 o 553 00:24:33,980 --> 00:24:39,380 string id 554 00:24:39,380 --> 00:24:44,009 ¿qué tiene que hacer este método? 555 00:24:45,690 --> 00:24:47,130 pues sustancialmente 556 00:24:47,130 --> 00:24:48,609 buscar un objeto 557 00:24:48,609 --> 00:24:51,450 Vale, un documento 558 00:24:51,450 --> 00:24:53,349 Una vez que haya encontrado este documento 559 00:24:53,349 --> 00:24:55,430 Sobre este documento tengo que hacer 560 00:24:55,430 --> 00:24:59,289 Llamar, su método mostrar 561 00:24:59,289 --> 00:25:00,970 Al que le pasaré 562 00:25:00,970 --> 00:25:02,349 Este señor de aquí 563 00:25:02,349 --> 00:25:04,950 Y que sea él que haga las cosas que quiera 564 00:25:04,950 --> 00:25:08,619 Entonces 565 00:25:08,619 --> 00:25:10,539 Vamos a intentarlo 566 00:25:10,539 --> 00:25:13,240 Busco el documento 567 00:25:13,240 --> 00:25:14,779 Para el documento tengo que buscar la id 568 00:25:14,779 --> 00:25:16,099 Por lo tanto 569 00:25:16,099 --> 00:25:19,190 For 570 00:25:19,190 --> 00:25:22,430 Documento 571 00:25:22,430 --> 00:25:22,970 De 572 00:25:22,970 --> 00:25:24,950 Dos puntos docs 573 00:25:24,950 --> 00:25:29,319 Si 574 00:25:29,319 --> 00:25:32,079 De 575 00:25:32,079 --> 00:25:33,160 Punto 576 00:25:33,160 --> 00:25:35,500 Ide 577 00:25:35,500 --> 00:25:38,220 Punto equals 578 00:25:38,220 --> 00:25:40,119 Ide 579 00:25:40,119 --> 00:25:45,660 Si os confunden 580 00:25:45,660 --> 00:25:46,519 Los ides 581 00:25:46,519 --> 00:25:47,859 Esto lo llamáis 582 00:25:47,859 --> 00:25:49,240 Buscado 583 00:25:49,240 --> 00:25:53,789 Buscado 584 00:25:53,789 --> 00:25:57,130 Me estoy yendo a mirar 585 00:25:57,130 --> 00:25:58,509 Todos los documentos en D 586 00:25:58,509 --> 00:26:00,410 Si encuentro un documento 587 00:26:00,410 --> 00:26:01,609 Cuyo ID 588 00:26:01,609 --> 00:26:04,049 Sea buscado 589 00:26:04,049 --> 00:26:05,970 Sean iguales 590 00:26:05,970 --> 00:26:07,970 Entonces este documento D 591 00:26:07,970 --> 00:26:10,289 Es el que quiero utilizar 592 00:26:10,289 --> 00:26:12,549 Para hacer algo 593 00:26:12,549 --> 00:26:15,250 ¿Y qué hago? 594 00:26:19,569 --> 00:26:21,250 D.mostrar 595 00:26:21,250 --> 00:26:22,849 ¿De qué? 596 00:26:24,849 --> 00:26:25,569 No 597 00:26:25,569 --> 00:26:27,369 ¿Se acuerdan? 598 00:26:27,369 --> 00:26:28,089 Hay que mostrar 599 00:26:28,089 --> 00:26:29,670 Recibía un objeto 600 00:26:29,670 --> 00:26:31,650 Que era 601 00:26:31,650 --> 00:26:37,589 Solo puedo usar la O 602 00:26:37,589 --> 00:26:37,789 No 603 00:26:37,789 --> 00:26:41,289 Fijaos que luego 604 00:26:41,289 --> 00:26:43,609 Él no me mirará si esto es un operador 605 00:26:43,609 --> 00:26:44,750 Si es un operador 606 00:26:44,750 --> 00:26:46,269 Autorizado 607 00:26:46,269 --> 00:26:49,470 Me mirará si este objeto que te ha pasado 608 00:26:49,470 --> 00:26:51,390 Esta instancia que te ha pasado 609 00:26:51,390 --> 00:26:53,529 Implementa 610 00:26:53,529 --> 00:26:54,849 Autorizado 611 00:26:54,849 --> 00:26:57,589 Si implementa autorizado le puedo pedir la autorización 612 00:26:57,589 --> 00:26:59,150 Y puedo ver si lo puedes leer o no 613 00:26:59,150 --> 00:27:01,269 Entonces aquí yo le he puesto operador 614 00:27:01,269 --> 00:27:03,130 En realidad le podría poner 615 00:27:03,130 --> 00:27:05,490 Object y pasar lo que me da la gana 616 00:27:05,490 --> 00:27:06,690 Porque luego aquí 617 00:27:06,690 --> 00:27:08,390 Lo que necesita él es un objeto 618 00:27:08,390 --> 00:27:12,390 ¿Sí? 619 00:27:13,069 --> 00:27:14,470 Podría ir aquí a puesto 620 00:27:14,470 --> 00:27:16,750 Object, oper 621 00:27:16,750 --> 00:27:19,769 Y esto me lo, me sigue funcionando 622 00:27:19,769 --> 00:27:21,690 Porque mostrar recibe un objeto 623 00:27:21,690 --> 00:27:23,329 Aquí, objeto cualquiera 624 00:27:23,329 --> 00:27:24,470 ¿Sí? 625 00:27:24,910 --> 00:27:27,170 Y aquí, que no sé a quién 626 00:27:27,170 --> 00:27:28,890 En la, no sé si está aquí 627 00:27:28,890 --> 00:27:31,269 Me ha dicho, ah, ma aquí 628 00:27:31,269 --> 00:27:33,230 Tengo que hacer lo que pone 629 00:27:33,230 --> 00:27:34,029 Que dice 630 00:27:34,029 --> 00:27:35,930 Se tratará de 631 00:27:35,930 --> 00:27:38,670 No me acuerdo 632 00:27:38,670 --> 00:27:41,029 Me pregunto, ¿tengo que comprobar 633 00:27:41,029 --> 00:27:43,089 Si este operador lo puede leer? 634 00:27:43,950 --> 00:27:44,509 No 635 00:27:44,509 --> 00:27:47,190 Porque ya lo haces aquí 636 00:27:47,190 --> 00:27:49,250 Ya lo has hecho eso 637 00:27:49,250 --> 00:27:51,250 Si aquí te pones otra vez 638 00:27:51,250 --> 00:27:53,230 A mirar si OPR es 639 00:27:53,230 --> 00:27:54,569 Un autorizado 640 00:27:54,569 --> 00:27:57,309 Y si su autorización 641 00:27:57,309 --> 00:27:58,690 Es igual a la cosa 642 00:27:58,690 --> 00:28:00,849 Estás volviendo a rehacer, mostrar 643 00:28:00,849 --> 00:28:01,930 Que ya existe 644 00:28:01,930 --> 00:28:04,470 Estás duplicando código para nada 645 00:28:04,470 --> 00:28:08,440 ¿Me entendéis? 646 00:28:10,220 --> 00:28:10,680 UDAS 647 00:28:10,680 --> 00:28:13,680 Pues si le contestas 648 00:28:13,680 --> 00:28:15,019 Sí, pero no 649 00:28:15,019 --> 00:28:20,299 Sí, lo tienes que hacer 650 00:28:20,299 --> 00:28:22,420 Pero no aquí porque ya lo has hecho 651 00:28:22,420 --> 00:28:23,400 Sí, pero no 652 00:28:23,400 --> 00:28:24,779 Clarísimo 653 00:28:24,779 --> 00:28:28,829 Implementa la interfaz 654 00:28:28,829 --> 00:28:29,569 Clarable 655 00:28:29,569 --> 00:28:32,150 Entonces 656 00:28:32,150 --> 00:28:33,950 ¿Qué más? 657 00:28:33,950 --> 00:28:35,670 Y ya está 658 00:28:35,670 --> 00:28:38,789 Se acabó 659 00:28:38,789 --> 00:28:41,230 Vale, esto es feucho 660 00:28:41,230 --> 00:28:42,470 Porque, eh 661 00:28:42,470 --> 00:28:46,539 No te gusta 662 00:28:46,539 --> 00:28:48,900 ¿Cómo lo quieres? 663 00:28:51,509 --> 00:28:53,710 Es foricho, para ir por colecciones 664 00:28:53,710 --> 00:28:54,470 Es muy interesante 665 00:28:54,470 --> 00:28:56,309 Ahora, el problema de este foricho 666 00:28:56,309 --> 00:28:57,869 Es que 667 00:28:57,869 --> 00:29:00,730 Cuando yo ya lo he encontrado 668 00:29:00,730 --> 00:29:02,930 Sigo mirando todos los demás 669 00:29:02,930 --> 00:29:11,019 Se utiliza un break 670 00:29:11,019 --> 00:29:11,799 ¿Vale? Aquí 671 00:29:11,799 --> 00:29:12,960 Break 672 00:29:12,960 --> 00:29:14,579 Probablemente 673 00:29:14,579 --> 00:29:18,910 No lo hemos visto 674 00:29:18,910 --> 00:29:19,710 ¿Vale? 675 00:29:19,910 --> 00:29:22,250 Pero el concepto es que hasta con el boolean no salgo 676 00:29:22,250 --> 00:29:25,109 Porque aquí no hay una condición booleana que estamos comprobando 677 00:29:25,109 --> 00:29:26,730 Entonces me queda aquí dentro 678 00:29:26,730 --> 00:29:30,599 Con un boolean que dice 679 00:29:30,599 --> 00:29:32,700 Cuando lo he encontrado le pongo el boolean a true 680 00:29:32,700 --> 00:29:38,640 Eh, pero el if está dentro del for 681 00:29:38,640 --> 00:29:39,319 A mí no me interesa 682 00:29:39,319 --> 00:29:45,940 Pero entonces ya que tiene que hacer una comparación 683 00:29:45,940 --> 00:29:46,440 Que me la haga 684 00:29:46,440 --> 00:29:49,180 Porque técnicamente entrará en uno solo 685 00:29:49,180 --> 00:29:51,680 Porque si yo he hecho que los IDs son únicos 686 00:29:51,680 --> 00:29:55,039 Si no lo he hecho 687 00:29:55,039 --> 00:29:55,960 Pues tenéis un problema 688 00:29:55,960 --> 00:29:59,900 Desde esto 689 00:29:59,900 --> 00:30:01,259 No 690 00:30:01,259 --> 00:30:03,180 Pero sí 691 00:30:03,180 --> 00:30:11,410 Yo creo que con esto 692 00:30:11,410 --> 00:30:12,609 Funcionaría, vale 693 00:30:12,609 --> 00:30:15,109 Aún así, lo habéis puesto así, vale 694 00:30:15,109 --> 00:30:16,509 Perto un poco de tiempo 695 00:30:16,509 --> 00:30:17,910 Miro más, no 696 00:30:17,910 --> 00:30:20,589 La eficiencia es una tarea 697 00:30:20,589 --> 00:30:21,769 Más bien de segundo 698 00:30:21,769 --> 00:30:24,349 Este año aprendamos a hacer las cosas 699 00:30:24,349 --> 00:30:27,089 Y hacerlas aceptablemente bien 700 00:30:27,089 --> 00:30:29,230 Luego si lo sabéis también optimizar 701 00:30:29,230 --> 00:30:30,650 Era pues mucho mejor 702 00:30:30,650 --> 00:30:33,390 Y lo que me interesa es que lo tengáis en cuenta 703 00:30:33,390 --> 00:30:34,970 Que os deis cuenta 704 00:30:34,970 --> 00:30:37,369 Que esto está, si hay un millón de documentos 705 00:30:37,369 --> 00:30:38,730 Y este es el primero 706 00:30:38,730 --> 00:30:41,349 Al primero ya habría podido dejar 707 00:30:41,349 --> 00:30:43,509 Y en vez hace un millón de if más 708 00:30:43,509 --> 00:30:45,589 Esto a nivel de eficiencia es feo 709 00:30:45,589 --> 00:30:46,410 ¿Vale? 710 00:30:47,029 --> 00:30:47,970 ¿Cómo lo soluciono? 711 00:30:48,089 --> 00:30:50,369 Pues o no hago el for each 712 00:30:50,369 --> 00:30:52,069 Hago un for normal 713 00:30:52,069 --> 00:30:53,869 Entonces allí sí que tengo la condición 714 00:30:53,869 --> 00:30:56,410 Y puedo utilizar el que cuando he encontrado 715 00:30:56,410 --> 00:30:57,289 Entonces sal 716 00:30:57,289 --> 00:31:00,069 O si no, uso el break aquí 717 00:31:00,069 --> 00:31:04,519 Vale 718 00:31:04,519 --> 00:31:07,839 Esto debería estar suficiente 719 00:31:07,839 --> 00:31:09,480 Listo, vale 720 00:31:09,480 --> 00:31:11,740 Tened en cuenta que esto ya me escribe en pantalla 721 00:31:11,740 --> 00:31:12,900 Entonces si lo he encontrado 722 00:31:12,900 --> 00:31:14,920 Esto ya me escribirá en pantalla 723 00:31:14,920 --> 00:31:17,480 No tienes acceso o si tienes acceso 724 00:31:17,480 --> 00:31:18,000 ¿Vale? 725 00:31:18,779 --> 00:31:20,259 Problemillas aquí que puede haber 726 00:31:20,259 --> 00:31:21,660 Esto 727 00:31:21,660 --> 00:31:22,980 Pues es null 728 00:31:22,980 --> 00:31:26,410 Es null explota 729 00:31:26,410 --> 00:31:36,220 Técnicamente si habéis 730 00:31:36,220 --> 00:31:38,220 Puesto private aquí 731 00:31:38,220 --> 00:31:40,680 Entonces nadie puede acceder 732 00:31:40,680 --> 00:31:42,140 Aquí dentro y modificar 733 00:31:42,140 --> 00:31:43,720 Os docs directamente 734 00:31:43,720 --> 00:31:46,039 La única forma actual para 735 00:31:46,039 --> 00:31:48,259 Toquetear docs es 736 00:31:48,259 --> 00:31:49,299 Con el rellena 737 00:31:49,299 --> 00:31:51,460 Y el rellena lo habéis hecho vosotros 738 00:31:51,460 --> 00:31:54,500 Y habéis puesto que no puede ser null 739 00:31:54,500 --> 00:31:56,680 Porque no habéis dejado espacios libres 740 00:31:56,680 --> 00:31:58,440 Pues entonces aquí os podéis 741 00:31:58,440 --> 00:32:00,779 olvidar tranquilamente de nul 742 00:32:00,779 --> 00:32:02,619 ahora si no habéis hecho estas dos 743 00:32:02,619 --> 00:32:04,779 cosas, pues aquí teníais que comprobar 744 00:32:04,779 --> 00:32:05,299 que era nul 745 00:32:05,299 --> 00:32:08,700 ¿pasaría algo si hay nul en el propio for? 746 00:32:09,380 --> 00:32:10,579 no, porque tú pides 747 00:32:10,579 --> 00:32:11,839 el nul, lo pones en D 748 00:32:11,839 --> 00:32:14,339 y es una referencia a nul, tranquilamente 749 00:32:14,339 --> 00:32:16,940 y cuando lo usas, que pum, nul pointer exception 750 00:32:16,940 --> 00:32:18,740 vale, en el if, pues se pone antes de 751 00:32:18,740 --> 00:32:19,220 y ya está 752 00:32:19,220 --> 00:32:24,599 vale, aquí alguien me ha preguntado 753 00:32:24,599 --> 00:32:26,559 más si yo he gestionado 754 00:32:26,559 --> 00:32:27,519 todo 755 00:32:27,519 --> 00:32:30,259 Sabiendo perfectamente 756 00:32:30,259 --> 00:32:31,180 Que no hay null 757 00:32:31,180 --> 00:32:34,119 ¿Puedo evitar de poner el not null? 758 00:32:34,700 --> 00:32:35,799 El if not null 759 00:32:35,799 --> 00:32:37,019 Si 760 00:32:37,019 --> 00:32:38,819 Pero si lo has hecho bien 761 00:32:38,819 --> 00:32:41,200 Si yo he hecho todo esto bien 762 00:32:41,200 --> 00:32:42,380 Y mira sin ningún null 763 00:32:42,380 --> 00:32:44,019 Y luego aquí no le he puesto private 764 00:32:44,019 --> 00:32:45,799 Pues no lo has gestionado 765 00:32:45,799 --> 00:32:48,259 Yo puedo acceder al doc 766 00:32:48,259 --> 00:32:50,740 Acceder al docs de posición 3 767 00:32:50,740 --> 00:32:51,859 Igual a null 768 00:32:51,859 --> 00:32:53,559 Ya me he cargado 769 00:32:53,559 --> 00:32:56,119 No puede haber null en doc 770 00:32:56,119 --> 00:32:59,200 dudas 771 00:32:59,200 --> 00:33:01,910 vale 772 00:33:01,910 --> 00:33:06,950 no he sido yo 773 00:33:06,950 --> 00:33:11,190 vamos a seguir adelante 774 00:33:11,190 --> 00:33:14,349 tercero 775 00:33:14,349 --> 00:33:15,690 obtener documentos 776 00:33:15,690 --> 00:33:18,210 esto creo que son los de emergencia que hacen práctica con 777 00:33:18,210 --> 00:33:24,769 obtener documentos 778 00:33:24,769 --> 00:33:25,750 entonces los documentos 779 00:33:25,750 --> 00:33:28,109 es decir a un nivel de 780 00:33:28,109 --> 00:33:30,150 confidencialidad y devolverá como valor 781 00:33:30,150 --> 00:33:32,230 de retorno un array con todos los 782 00:33:32,230 --> 00:33:34,490 documentos con nivel de confidencialidad 783 00:33:34,490 --> 00:33:36,049 inferior o igual a este parámetro 784 00:33:36,049 --> 00:33:37,970 Parecido al que hemos visto ahora 785 00:33:37,970 --> 00:33:39,589 Public 786 00:33:39,589 --> 00:33:41,829 Void 787 00:33:41,829 --> 00:33:46,269 Obtener 788 00:33:46,269 --> 00:33:48,009 Documentos 789 00:33:48,009 --> 00:33:52,019 Ah, y pilla 790 00:33:52,019 --> 00:33:52,599 Nivel 791 00:33:52,599 --> 00:33:58,410 Int nivel de confidencialidad 792 00:33:58,410 --> 00:34:05,950 ¿Qué tengo que hacer? A ver, no es void 793 00:34:05,950 --> 00:34:07,950 Es documento 794 00:34:07,950 --> 00:34:09,530 Allí 795 00:34:09,530 --> 00:34:12,210 Vale, esta era la parte un poquito compleja de esto 796 00:34:12,210 --> 00:34:15,230 Tengo que devolver una red de documentos 797 00:34:15,230 --> 00:34:16,849 La pregunta es 798 00:34:16,849 --> 00:34:18,650 ¿Cómo lo devuelvo esta red de documentos? 799 00:34:18,750 --> 00:34:21,130 Es decir, ¿cuántas posiciones 800 00:34:21,130 --> 00:34:22,269 Tiene que tener este señor? 801 00:34:23,789 --> 00:34:24,469 El número de 802 00:34:24,469 --> 00:34:26,670 El número de documentos 803 00:34:26,670 --> 00:34:28,309 Que tengan NC 804 00:34:28,309 --> 00:34:30,969 Para NC o un menor 805 00:34:30,969 --> 00:34:32,329 Lo sé 806 00:34:32,329 --> 00:34:33,329 No 807 00:34:33,329 --> 00:34:35,789 Entonces aquí tengo dos opciones 808 00:34:35,789 --> 00:34:38,369 O voy buscando de un en uno 809 00:34:38,369 --> 00:34:39,889 Y cada vez que encuentro uno 810 00:34:39,889 --> 00:34:41,389 Lo añado a mi array 811 00:34:41,389 --> 00:34:44,050 Y si mi array está lleno, aumento 812 00:34:44,050 --> 00:34:48,190 Lo copio en uno más grande y aumento uno 813 00:34:48,190 --> 00:34:50,070 Lo copio en uno más grande y aumento uno 814 00:34:50,070 --> 00:34:52,269 O la segunda opción es 815 00:34:52,269 --> 00:34:54,349 Recorro todo docs 816 00:34:54,349 --> 00:34:58,230 Contando cuántos documentos me interesa 817 00:34:58,230 --> 00:35:01,789 Allí me da el número de posiciones 818 00:35:01,789 --> 00:35:05,170 Creo el array con ese número de posiciones 819 00:35:05,170 --> 00:35:07,809 Y vuelvo a recorrerme todo docs 820 00:35:07,809 --> 00:35:10,030 Pillándolos y poniéndolos así 821 00:35:10,030 --> 00:35:12,570 hay una 822 00:35:12,570 --> 00:35:14,690 que igual es peor, la peor de todas 823 00:35:14,690 --> 00:35:16,750 es el mismo tamaño 824 00:35:16,750 --> 00:35:18,949 que la red que vas a recorrer y luego lo acortas 825 00:35:18,949 --> 00:35:20,590 pero claro, igual 826 00:35:20,590 --> 00:35:26,500 si es un millón 827 00:35:26,500 --> 00:35:28,699 no, no, es que 828 00:35:28,699 --> 00:35:29,679 es 829 00:35:29,679 --> 00:35:33,079 un gasto de hoy igual demasiado 830 00:35:33,079 --> 00:35:34,360 no, no 831 00:35:34,360 --> 00:35:36,900 yo creo que es simplemente más 832 00:35:36,900 --> 00:35:39,179 retorcido para tu mente para entender 833 00:35:39,179 --> 00:35:41,059 y de todas formas 834 00:35:41,059 --> 00:35:43,000 por eso digo 835 00:35:43,000 --> 00:35:45,199 gastas, o sea, no le veo una 836 00:35:45,199 --> 00:35:47,219 ventaja directa 837 00:35:47,219 --> 00:35:49,239 a hacerlo, entonces que lo vas añadiendo 838 00:35:49,239 --> 00:35:49,699 de un mismo 839 00:35:49,699 --> 00:35:52,780 no, no, si ventaja no hay, pero es la que se me ocurrió primero 840 00:35:52,780 --> 00:35:56,719 acordaos también 841 00:35:56,719 --> 00:35:59,239 la gestión de null, vale, si vosotros 842 00:35:59,239 --> 00:36:01,300 lo hacéis de tal forma que no puede haber null 843 00:36:01,300 --> 00:36:03,300 en lo que devolvéis fenomenal, si no 844 00:36:03,300 --> 00:36:04,659 cuidado con lo que hacéis, vale 845 00:36:04,659 --> 00:36:07,619 yo lo haré de la forma de leerlo dos veces 846 00:36:07,619 --> 00:36:09,119 ¿por qué? porque soy vago 847 00:36:09,119 --> 00:36:11,239 entonces 848 00:36:11,239 --> 00:36:15,059 copio esto 849 00:36:15,059 --> 00:36:22,500 int num es igual a cero 850 00:36:22,500 --> 00:36:23,980 voy a buscar 851 00:36:23,980 --> 00:36:26,159 los documentos y si 852 00:36:26,159 --> 00:36:27,760 el documento actual 853 00:36:27,760 --> 00:36:29,119 punto 854 00:36:29,119 --> 00:36:32,500 nivel 855 00:36:32,500 --> 00:36:33,820 confidencialidad 856 00:36:33,820 --> 00:36:36,239 es menor o igual 857 00:36:36,239 --> 00:36:37,539 a nc 858 00:36:37,539 --> 00:36:40,559 entonces lo junto 859 00:36:40,559 --> 00:36:42,960 num++ 860 00:36:42,960 --> 00:36:47,610 Cuando acabo este for 861 00:36:47,610 --> 00:36:49,550 Aquí dentro 862 00:36:49,550 --> 00:36:50,570 En num 863 00:36:50,570 --> 00:36:53,510 Tengo cuantos documentos 864 00:36:53,510 --> 00:36:55,050 Cumplen con esta condición 865 00:36:55,050 --> 00:36:57,230 Por lo tanto me creo 866 00:36:57,230 --> 00:36:59,329 Un documento 867 00:36:59,329 --> 00:36:59,789 Subo 868 00:36:59,789 --> 00:37:02,329 Documento 869 00:37:02,329 --> 00:37:04,309 No se que 870 00:37:04,309 --> 00:37:06,610 Res es igual a 871 00:37:06,610 --> 00:37:08,289 New documento 872 00:37:08,289 --> 00:37:10,170 De num 873 00:37:10,170 --> 00:37:12,449 De ese número de posiciones 874 00:37:12,449 --> 00:37:16,329 Y me vuelvo a hacer 875 00:37:16,329 --> 00:37:17,630 Esta cosa de aquí 876 00:37:17,630 --> 00:37:34,070 Los 877 00:37:34,070 --> 00:37:36,769 Me da igual, mayor o menor 878 00:37:36,769 --> 00:37:37,789 Pero el concepto es 879 00:37:37,789 --> 00:37:39,469 No, a mi me interesa saber 880 00:37:39,469 --> 00:37:41,869 Si te doy nivel 3 y tu me das los documentos 881 00:37:41,869 --> 00:37:43,030 De nivel 3 o menor 882 00:37:43,030 --> 00:37:45,369 3, 2, 1 883 00:37:45,369 --> 00:37:47,269 No 884 00:37:47,269 --> 00:37:50,079 Porque 885 00:37:50,079 --> 00:37:53,300 Por eso me da igual que tu 886 00:37:53,300 --> 00:37:54,760 Lo hayas interpretado de una forma o de otra 887 00:37:54,760 --> 00:37:57,420 Si esto lo has hecho bien, lo que cambia 888 00:37:57,420 --> 00:37:59,659 es que en vez que mayor o igual, has puesto menor o igual 889 00:37:59,659 --> 00:38:00,840 o al revés 890 00:38:00,840 --> 00:38:03,320 no es eso 891 00:38:03,320 --> 00:38:04,480 que te hace perder 892 00:38:04,480 --> 00:38:07,199 ni siquiera 0,5 893 00:38:07,199 --> 00:38:11,360 oye, mira, que esto yo lo había 894 00:38:11,360 --> 00:38:13,480 entendido otra vez, o si tú me dices 895 00:38:13,480 --> 00:38:15,340 no, mira, que yo lo he interpretado de otra forma 896 00:38:15,340 --> 00:38:16,400 y lo he interpretado así 897 00:38:16,400 --> 00:38:20,900 no, no voy a mirar 898 00:38:20,900 --> 00:38:23,019 esto, ¿vale? a lo mejor el concepto 899 00:38:23,019 --> 00:38:24,760 es que como yo lo he interpretado así, aquí 900 00:38:24,760 --> 00:38:26,579 me hace una cosa, que luego a ti te hace otra 901 00:38:26,579 --> 00:38:28,380 ¿no? si 902 00:38:28,380 --> 00:38:30,480 El hecho es que yo te he dado un ejemplo 903 00:38:30,480 --> 00:38:33,400 Entonces tú podrías ir a mirar mi ejemplo 904 00:38:33,400 --> 00:38:34,679 Y ver que te estoy poniendo 905 00:38:34,679 --> 00:38:36,699 Nivel 2, 1, 4 y 1 906 00:38:36,699 --> 00:38:38,119 A nivel de confidencialidad 907 00:38:38,119 --> 00:38:39,900 Y que cuando te pido el nivel 3 908 00:38:39,900 --> 00:38:41,239 Te está devolviendo 3 909 00:38:41,239 --> 00:38:44,239 Según el tuyo debería haber devuelto uno solo 910 00:38:44,239 --> 00:38:46,440 El de nivel 4 911 00:38:46,440 --> 00:38:49,900 Según tu definición 912 00:38:51,519 --> 00:38:52,719 Si yo te pido nivel 3 913 00:38:52,719 --> 00:38:53,900 Me das todos los documentos 914 00:38:53,900 --> 00:38:55,300 De nivel 3, 4, 5, 6 915 00:38:55,300 --> 00:38:59,849 Entonces eso 916 00:38:59,849 --> 00:39:02,289 Ah, tú dices que esto no 917 00:39:02,289 --> 00:39:05,440 No 918 00:39:05,440 --> 00:39:08,480 Imagínate que tú has puesto 3 919 00:39:08,480 --> 00:39:09,480 ¿Vale? 920 00:39:09,719 --> 00:39:12,179 Si mi documento de concluida ya vale 1 921 00:39:12,179 --> 00:39:13,800 1 es menor o igual que 3 922 00:39:13,800 --> 00:39:14,679 Por lo tanto me lo das 923 00:39:14,679 --> 00:39:22,119 Vale, puedo seguir 924 00:39:22,119 --> 00:39:24,199 Ok 925 00:39:24,199 --> 00:39:28,780 Y ahora que hago 926 00:39:28,780 --> 00:39:30,599 Vuelvo a rehacer esto 927 00:39:30,599 --> 00:39:35,980 Num 928 00:39:35,980 --> 00:39:37,539 Lo devuelvo a 0 929 00:39:37,539 --> 00:39:38,860 Antes de empezar 930 00:39:38,860 --> 00:39:40,940 Y cada vez que encuentro uno 931 00:39:40,940 --> 00:39:43,019 Lo que le digo ahora es 932 00:39:43,019 --> 00:39:44,159 Que en do 933 00:39:44,159 --> 00:39:45,000 No, esto me vale 934 00:39:45,000 --> 00:39:47,559 Que en dox 935 00:39:47,559 --> 00:39:49,360 No, en res 936 00:39:49,360 --> 00:39:51,440 De num 937 00:39:51,440 --> 00:39:53,940 Me pones de 938 00:39:53,940 --> 00:40:00,760 Fijaos que he vuelto 939 00:40:00,760 --> 00:40:02,780 A reacerar cero 940 00:40:02,780 --> 00:40:03,619 Es en num 941 00:40:03,619 --> 00:40:05,699 Por lo tanto la primera vez que pongo aquí 942 00:40:05,699 --> 00:40:08,079 En res de cero ponme el documento que has encontrado 943 00:40:08,079 --> 00:40:09,760 Esto me encontrará 944 00:40:09,760 --> 00:40:12,679 Me entrará aquí exactamente el mismo número de veces 945 00:40:12,679 --> 00:40:13,860 que me ha entrado antes 946 00:40:13,860 --> 00:40:15,900 por lo tanto tengo suficientes 947 00:40:15,900 --> 00:40:20,820 y al final tengo un array 948 00:40:20,820 --> 00:40:22,719 con exactamente esas posiciones 949 00:40:22,719 --> 00:40:24,820 con dentro todos los documentos 950 00:40:24,820 --> 00:40:26,840 que cumplen con esta característica 951 00:40:26,840 --> 00:40:33,429 fijaos 952 00:40:33,429 --> 00:40:35,989 que estos ejercicios de aquí 953 00:40:35,989 --> 00:40:38,389 tampoco son una cosa terrible 954 00:40:38,389 --> 00:40:43,820 este de aquí 955 00:40:43,820 --> 00:40:45,860 tampoco mucho 956 00:40:45,860 --> 00:40:47,780 al fin y al cabo es 957 00:40:47,780 --> 00:40:52,440 pero este muro de texto 958 00:40:52,440 --> 00:40:53,699 es para pedir 959 00:40:53,699 --> 00:40:57,659 de código, ¿no? 960 00:40:58,460 --> 00:40:59,960 esto dices, todo esto 961 00:40:59,960 --> 00:41:02,559 sí, pero es mucho 962 00:41:02,559 --> 00:41:04,219 porque tienes que hablar 963 00:41:04,219 --> 00:41:05,280 con el usuario 964 00:41:05,280 --> 00:41:18,639 eso sí, pero también 965 00:41:18,639 --> 00:41:20,539 a ver, si tú has puesto audio 966 00:41:20,539 --> 00:41:22,260 y texto y te has cargado 967 00:41:22,260 --> 00:41:23,619 que no es un identificador 968 00:41:23,619 --> 00:41:26,480 es un error, sí, porque es parte 969 00:41:26,480 --> 00:41:28,219 del ejercicio, pero 970 00:41:28,219 --> 00:41:30,219 tampoco es un error de, oye, mira 971 00:41:30,219 --> 00:41:31,880 Con eso no pruebas en la vida 972 00:41:31,880 --> 00:41:34,619 O sea, en una empresa sería un error grave 973 00:41:34,619 --> 00:41:36,980 Aquí el examen es sobre otra cosa 974 00:41:36,980 --> 00:41:38,019 ¿Vale? 975 00:41:41,110 --> 00:41:41,550 Sí, yo 976 00:41:41,550 --> 00:41:45,099 Falta el último, ¿no? 977 00:41:51,900 --> 00:41:53,699 Documentos, debería funcionar 978 00:41:53,699 --> 00:41:55,539 Eh, nota también 979 00:41:55,539 --> 00:41:56,800 Y yo estoy haciendo todo de... 980 00:41:56,800 --> 00:41:57,800 Porque estoy grabando también 981 00:41:57,800 --> 00:42:00,539 Pero técnicamente vosotros hacéis rellenar 982 00:42:00,539 --> 00:42:02,599 Y probáis 20 veces rellenar 983 00:42:02,599 --> 00:42:04,559 No se hace 984 00:42:04,559 --> 00:42:07,099 Hago todo el examen en los últimos 5 minutos 985 00:42:07,099 --> 00:42:08,639 Intento ver si lo he hecho bien 986 00:42:08,639 --> 00:42:11,820 Porque allí es cuando sacáis un cero 987 00:42:11,820 --> 00:42:13,380 Que no funciona nada 988 00:42:13,380 --> 00:42:15,539 ¿Sí? 989 00:42:16,539 --> 00:42:19,199 O sea, esto se os da cuatro métodos 990 00:42:19,199 --> 00:42:21,239 Independientes uno de otro 991 00:42:21,239 --> 00:42:23,400 Además, el primero es para rellenar 992 00:42:23,400 --> 00:42:25,019 Y los otros dependen de rellenar 993 00:42:25,019 --> 00:42:28,159 Porque si no has rellenado, no puedes ni buscar, ni obtener, ni vaciar 994 00:42:28,159 --> 00:42:30,280 Pues entonces, me hago rellenar 995 00:42:30,280 --> 00:42:31,360 Y pruebo rellenar 996 00:42:31,360 --> 00:42:33,440 ¿Cómo lo pruebo? Pues lo llamo dos veces 997 00:42:33,440 --> 00:42:36,000 Archivo documentos.rellena 998 00:42:36,000 --> 00:42:37,239 Archivo documentos.rellena 999 00:42:37,239 --> 00:42:39,079 Y luego me hago que me escriba 1000 00:42:39,079 --> 00:42:39,880 Lo que hay allí 1001 00:42:39,880 --> 00:42:44,219 Cuando he hecho esto allí 1002 00:42:44,219 --> 00:42:46,960 Pues me hago leer documento 1003 00:42:46,960 --> 00:42:49,039 Y pruebo leer documento 1004 00:42:49,039 --> 00:42:49,260 Si 1005 00:42:49,260 --> 00:42:52,530 Vale 1006 00:42:52,530 --> 00:42:57,690 Ah, tengo que devolverle esta cosa 1007 00:42:57,690 --> 00:42:59,050 Horrible que he creado 1008 00:42:59,050 --> 00:43:02,469 Return res 1009 00:43:02,469 --> 00:43:05,150 Vale 1010 00:43:05,150 --> 00:43:08,170 Aquí hay problemas de null 1011 00:43:08,170 --> 00:43:09,230 No debería, vale 1012 00:43:09,230 --> 00:43:11,309 Pero si lo he hecho bien 1013 00:43:11,309 --> 00:43:13,650 L'ultimo 1014 00:43:13,650 --> 00:43:18,949 Que es el vaciar documento segreto 1015 00:43:18,949 --> 00:43:22,429 Vale, vaciar documento segreto 1016 00:43:22,429 --> 00:43:28,389 Public 1017 00:43:28,389 --> 00:43:29,530 Voy 1018 00:43:29,530 --> 00:43:34,110 Vaciar 1019 00:43:34,110 --> 00:43:37,579 Que es un método inútil 1020 00:43:37,579 --> 00:43:39,559 Solo para que vosotros lo practiquéis 1021 00:43:39,559 --> 00:43:40,099 Pero es 1022 00:43:40,099 --> 00:43:41,280 Búscame 1023 00:43:41,280 --> 00:43:42,880 El nivel 1024 00:43:42,880 --> 00:43:46,920 Los documentos con nivel más alto posible 1025 00:43:46,920 --> 00:43:48,900 Con nivel de confidencialidad más alto 1026 00:43:48,900 --> 00:43:49,260 ¿Vale? 1027 00:43:49,639 --> 00:43:52,159 Entonces supongo que sean los que tienen cero 1028 00:43:52,159 --> 00:43:53,159 O uno 1029 00:43:53,159 --> 00:43:53,940 ¿Sí? 1030 00:43:54,840 --> 00:43:57,500 De ellos 1031 00:43:57,500 --> 00:43:59,360 El primero me lo va a decir 1032 00:43:59,360 --> 00:44:00,780 El primero que has encontrado 1033 00:44:00,780 --> 00:44:01,480 ¿Vale? 1034 00:44:01,559 --> 00:44:01,980 Ah, es eso 1035 00:44:01,980 --> 00:44:02,960 El primero que 1036 00:44:02,960 --> 00:44:07,380 El primer documento con nivel de confidencialidad más alto 1037 00:44:07,380 --> 00:44:09,119 Y luego está el ejemplo 1038 00:44:09,119 --> 00:44:11,280 Entonces si no lo entendíais 1039 00:44:11,280 --> 00:44:12,519 Podíais mirar el ejemplo de que hace 1040 00:44:12,519 --> 00:44:13,159 ¿Vale? 1041 00:44:13,159 --> 00:44:14,860 La idea es que entonces 1042 00:44:14,860 --> 00:44:17,480 Esto también está en dos pasos 1043 00:44:17,480 --> 00:44:21,559 Primero tengo que saber cuál es el nivel de confidencialidad más alto que tengo 1044 00:44:21,559 --> 00:44:23,780 Que no necesariamente es uno 1045 00:44:23,780 --> 00:44:28,380 Podría tener solo documentos de nivel 20, 25 y 37 1046 00:44:28,380 --> 00:44:35,480 Por lo tanto me tendré que hacer un recorrido de todos los documentos 1047 00:44:35,480 --> 00:44:41,059 De todos los archivos buscando cuál es el nivel de documento más alto 1048 00:44:41,059 --> 00:44:44,159 El nivel de confidencialidad más bajo, más alto 1049 00:44:44,159 --> 00:44:49,119 más el número menor que representa el mayor nivel de confidencialidad. 1050 00:44:50,300 --> 00:44:54,360 Cuando tengo eso, vuelvo a empezar desde el principio, 1051 00:44:54,780 --> 00:44:58,219 pillo el primero que encuentre con ese nivel y este lo vacío. 1052 00:44:59,659 --> 00:45:19,730 Yo hice eso, pero yo había entendido que es el más alto, 1053 00:45:20,889 --> 00:45:24,369 si hay más iguales, pues borras todos, pero que te quites el que sea más, 1054 00:45:24,489 --> 00:45:25,869 pero como si hubiese varios. 1055 00:45:26,630 --> 00:45:28,650 Que podía haber uno o varios, no el primero que te encuentra, 1056 00:45:28,650 --> 00:45:39,369 si hay dos unos que todos los de nivel más alto si yo entendí eso pero ordenando lo que traemos 1057 00:45:39,369 --> 00:45:54,019 lo me gusta vale como idea como lo ordenamos vale me gusta es una buena solución porque también te 1058 00:45:54,019 --> 00:46:01,280 usar el comparto donde hay puesto el comparto donde lo habéis implementado el compare tú 1059 00:46:01,280 --> 00:46:13,880 documento vale implements mostrable como comparable vale entonces implementó aquí 1060 00:46:13,880 --> 00:46:24,800 Y public int compareto object o. 1061 00:46:27,519 --> 00:46:28,079 Justo. 1062 00:46:35,260 --> 00:46:37,980 ¿No has usado comparable o no sabes que es comparable? 1063 00:46:39,079 --> 00:46:39,659 Sí, sí. 1064 00:46:40,019 --> 00:46:42,139 Lo puedes ordenar tú por tu cuenta. 1065 00:46:42,139 --> 00:46:44,099 Lo ordenas y ya está. 1066 00:46:44,559 --> 00:46:50,440 Como sabemos que existe una forma de ordenarlos fácil utilizando una interfaz, es un examen sobre interfaz. 1067 00:46:51,880 --> 00:47:00,880 si implementó el compare tú lo que tengo que hacer es devolver a menos 101 dependiendo de 1068 00:47:00,880 --> 00:47:10,980 cómo están que nunca me acuerdo como no me acuerdo o tenga acceso al api y lo miro o 1069 00:47:10,980 --> 00:47:15,300 si no lo hago de una forma y si luego veo que todo sale al revés por eso lo hago 1070 00:47:15,300 --> 00:47:23,210 si lo que tú tienes es menor 1071 00:47:23,210 --> 00:47:27,769 si dis es menor 1072 00:47:27,769 --> 00:47:28,989 es positivo 1073 00:47:28,989 --> 00:47:30,909 es lo raro, es como que es al revés 1074 00:47:30,909 --> 00:47:32,590 ahora me lo dices otra vez cuando llegamos 1075 00:47:32,590 --> 00:47:33,809 porque tanto se me olvida de aquí 1076 00:47:33,809 --> 00:47:37,210 esto tiene también 1077 00:47:37,210 --> 00:47:38,409 un pequeño 1078 00:47:38,409 --> 00:47:40,789 problemilla 1079 00:47:40,789 --> 00:47:50,409 tú los ordenas 1080 00:47:50,409 --> 00:47:52,289 vacías el primero 1081 00:47:52,289 --> 00:47:53,909 cuidado, vaciar el primero 1082 00:47:53,909 --> 00:47:55,530 quiere decir que no lo estás destruyendo 1083 00:47:55,530 --> 00:47:56,690 lo estás vaciando 1084 00:47:56,690 --> 00:47:58,269 entonces se te queda allí 1085 00:47:58,269 --> 00:48:02,849 Y luego lo tienes que volver a ordenar 1086 00:48:02,849 --> 00:48:04,570 Porque si no, si llamas otra vez vaciar 1087 00:48:04,570 --> 00:48:06,730 Te vuelve a vaciar eso si es el primero 1088 00:48:06,730 --> 00:48:14,869 Pero sobre qué lo ordenas 1089 00:48:14,869 --> 00:48:16,030 O sea, qué haces tú 1090 00:48:16,030 --> 00:48:17,369 Cuando vacías 1091 00:48:17,369 --> 00:48:20,090 Para que ese no se te quede primero 1092 00:48:20,090 --> 00:48:37,980 Estoy pensando 1093 00:48:37,980 --> 00:48:40,400 Porque si era ponerlo nulo era fácil 1094 00:48:40,400 --> 00:48:41,880 Pero si no pone nulo 1095 00:48:41,880 --> 00:48:43,539 Tienes que tener en cuenta eso 1096 00:48:43,539 --> 00:48:45,340 Una opción podría ser 1097 00:48:45,340 --> 00:48:47,219 Que tú te quites del medio 1098 00:48:47,219 --> 00:48:50,980 O sea, que le des un nivel de confidencialidad 1099 00:48:50,980 --> 00:48:52,659 Imposible de dar 1100 00:48:52,659 --> 00:48:53,579 Menos uno 1101 00:48:53,579 --> 00:48:55,679 Entonces, si es menos uno 1102 00:48:55,679 --> 00:48:58,440 Es lo mismo que tu concepto de 1103 00:48:58,440 --> 00:49:00,800 Esta vacía 1104 00:49:00,800 --> 00:49:07,900 Sí, pero luego lo puedes ignorar 1105 00:49:07,900 --> 00:49:10,199 Diciendo si es negativo o cero 1106 00:49:10,199 --> 00:49:11,960 Serán los primeros 1107 00:49:11,960 --> 00:49:13,900 Que a lo mejor no me gusta mucho 1108 00:49:13,900 --> 00:49:16,079 Pero lo que puedes hacer es luego siempre 1109 00:49:16,079 --> 00:49:17,619 Ordenar 1110 00:49:17,619 --> 00:49:20,239 Porque luego se te quedan allí 1111 00:49:20,239 --> 00:49:33,300 molestan y estarán siempre los primeros que vas a mirar lo pensaremos vamos a hacerlas 1112 00:49:33,300 --> 00:49:38,099 y simplemente por la curiosidad de utilizar convertir no por otra cuestión a lo mejor 1113 00:49:38,099 --> 00:49:54,730 otros métodos serían mejores qué más y dice punto nivel coincidencialidad no estamos comparando esto 1114 00:50:03,840 --> 00:50:05,059 Documento lo que estás comparando 1115 00:50:05,059 --> 00:50:05,420 Sí 1116 00:50:05,420 --> 00:50:07,500 O 1117 00:50:07,500 --> 00:50:09,139 Instance 1118 00:50:09,139 --> 00:50:09,920 Of 1119 00:50:09,920 --> 00:50:17,650 Eh 1120 00:50:17,650 --> 00:50:20,789 ¿Por qué O? 1121 00:50:20,869 --> 00:50:21,889 No sé qué objeto es 1122 00:50:21,889 --> 00:50:24,110 Tiene que ser 1123 00:50:24,110 --> 00:50:25,150 De mi mismo tipo 1124 00:50:25,150 --> 00:50:26,230 Para poderlo comparar 1125 00:50:26,230 --> 00:50:27,130 Documento 1126 00:50:27,130 --> 00:50:28,489 Documento 1127 00:50:28,489 --> 00:50:34,190 Entonces 1128 00:50:34,190 --> 00:50:42,280 Return 1129 00:50:42,280 --> 00:50:45,440 Is 1130 00:50:45,440 --> 00:50:46,500 Punto 1131 00:50:46,500 --> 00:50:47,219 Nivel 1132 00:50:47,219 --> 00:50:48,079 Confidencial 1133 00:50:48,079 --> 00:50:49,320 Menos 1134 00:50:49,320 --> 00:50:54,170 Documento 1135 00:50:54,170 --> 00:50:55,010 De O 1136 00:50:55,010 --> 00:50:59,110 Punto nivel 1137 00:50:59,110 --> 00:51:00,610 Confidencialidad 1138 00:51:00,610 --> 00:51:01,750 ¡Basta! 1139 00:51:07,280 --> 00:51:09,239 Eso es lo que me preocupa 1140 00:51:09,239 --> 00:51:09,760 Pero 1141 00:51:09,760 --> 00:51:12,400 Al ser el número menor es mayor 1142 00:51:12,400 --> 00:51:15,280 En confidencialidad 1143 00:51:15,280 --> 00:51:16,559 Tiene más confidencialidad 1144 00:51:16,559 --> 00:51:19,820 Si lo estás ordenando de mayor confidencialidad 1145 00:51:19,820 --> 00:51:22,000 Esa es 1146 00:51:22,000 --> 00:51:24,079 Eso es lo que tiene que dar 1147 00:51:24,079 --> 00:51:25,179 Menos uno más uno 1148 00:51:25,179 --> 00:51:27,760 Si esto tiene nivel uno 1149 00:51:27,760 --> 00:51:29,900 Y esto tiene nivel dos 1150 00:51:29,900 --> 00:51:33,300 Esto daría positivo 1151 00:51:33,300 --> 00:51:35,500 No, daría negativo 1152 00:51:35,500 --> 00:51:37,199 Que está mal 1153 00:51:37,199 --> 00:51:38,420 Según la definición 1154 00:51:38,420 --> 00:51:40,659 Por tanto, aparecería antes 1155 00:51:40,659 --> 00:51:42,960 Y está apareciendo antes el 84 1156 00:51:42,960 --> 00:51:44,940 Ponemos esto detrás 1157 00:51:44,940 --> 00:51:47,159 Ese era el tema que yo me quedé aquí 1158 00:51:47,159 --> 00:51:48,039 De rato 1159 00:51:48,039 --> 00:51:50,820 De todas formas, esto se hace fácil 1160 00:51:50,820 --> 00:51:52,039 Lo ponéis al azar 1161 00:51:52,039 --> 00:51:54,199 Miráis como os lo ha ordenado 1162 00:51:54,199 --> 00:51:55,780 Y luego cambiáis el orden 1163 00:51:55,780 --> 00:51:59,079 Fijaos, esto de los tres if 1164 00:51:59,079 --> 00:52:01,360 Si esto, si esto, si esto puede estar bien 1165 00:52:01,360 --> 00:52:01,579 Pero 1166 00:52:01,579 --> 00:52:04,559 Si tenéis números 1167 00:52:04,559 --> 00:52:07,239 Si ordenáis sobre la base de un número 1168 00:52:07,239 --> 00:52:09,139 ¿Vale? Normalmente 1169 00:52:09,139 --> 00:52:11,139 Os compensa hacer 1170 00:52:11,139 --> 00:52:13,019 Algún tipo de operación 1171 00:52:13,019 --> 00:52:13,719 ¿Vale? 1172 00:52:14,599 --> 00:52:16,460 Si son string no lo puede hacer 1173 00:52:16,460 --> 00:52:19,300 Pero si es un número probablemente 1174 00:52:19,300 --> 00:52:21,219 Lo puede hacer ¿Vale? Ya veremos si esto funciona 1175 00:52:21,219 --> 00:52:22,639 Tened en cuenta que 1176 00:52:22,639 --> 00:52:25,340 También este señor de aquí explota 1177 00:52:25,340 --> 00:52:26,900 Porque dice oye mira 1178 00:52:26,900 --> 00:52:28,820 Me tienes que dar un return 1179 00:52:28,820 --> 00:52:30,480 Y si esto no es verdad 1180 00:52:30,480 --> 00:52:31,940 No me estás dando nada 1181 00:52:31,940 --> 00:52:34,619 ¿Vale? 1182 00:52:35,059 --> 00:52:35,699 Entonces 1183 00:52:35,699 --> 00:52:40,929 Esto sería un else 1184 00:52:40,929 --> 00:52:44,190 Explota 1185 00:52:44,190 --> 00:52:49,059 Pero todavía no sabemos explotar 1186 00:52:49,059 --> 00:52:50,239 ¿Vale? 1187 00:52:51,099 --> 00:52:53,059 Sería un throw 1188 00:52:53,059 --> 00:52:54,579 Throw 1189 00:52:54,579 --> 00:52:56,340 A new 1190 00:52:56,340 --> 00:52:58,019 Exception 1191 00:52:58,019 --> 00:53:04,539 Algo 1192 00:53:04,539 --> 00:53:06,280 El próximo, por eso lo pongo 1193 00:53:06,280 --> 00:53:07,980 Algo parecido a esto 1194 00:53:07,980 --> 00:53:10,260 Vale, creo una nueva excepción 1195 00:53:10,260 --> 00:53:11,500 Lo lanzo 1196 00:53:11,500 --> 00:53:12,639 Y entonces explota 1197 00:53:12,639 --> 00:53:14,940 ¿Vale? Pero bueno 1198 00:53:14,940 --> 00:53:17,760 Aquí hagamos 1199 00:53:17,760 --> 00:53:18,820 No lo sé 1200 00:53:18,820 --> 00:53:22,769 Si no, return 0 1201 00:53:22,769 --> 00:53:25,050 Tanto 1202 00:53:25,050 --> 00:53:26,570 En mi 1203 00:53:26,570 --> 00:53:29,010 En mi contexto 1204 00:53:29,010 --> 00:53:30,110 No debería dar problemas 1205 00:53:30,110 --> 00:53:32,489 Porque siempre son documentos los que comparo 1206 00:53:32,489 --> 00:53:33,030 ¿Vale? Pero 1207 00:53:33,030 --> 00:53:36,449 Entonces, si yo consigo hacer el compare to 1208 00:53:36,449 --> 00:53:46,949 fenomenal me voy a vaciar vale y ahora puedo ordenar mi documento vale como lo 1209 00:53:46,949 --> 00:53:55,530 documento como lo rea como lo ordenó a raíz punto sorte de dos balas ordenado 1210 00:53:55,530 --> 00:54:09,039 una cosa probablemente porque intentará hacer un acceso a el comparable que hemos 1211 00:54:09,039 --> 00:54:11,019 se ha implementado ahora, accede 1212 00:54:11,019 --> 00:54:13,000 a algo, si este es null 1213 00:54:13,000 --> 00:54:13,739 explota 1214 00:54:13,739 --> 00:54:17,340 considera que para ordenarlo 1215 00:54:17,340 --> 00:54:18,719 lo que está haciendo es un compare to 1216 00:54:18,719 --> 00:54:20,400 entre los varios objetos de la red 1217 00:54:20,400 --> 00:54:22,460 por lo tanto, con que uno sea null, explota 1218 00:54:22,460 --> 00:54:24,840 claro, esto lo debería poner aquí 1219 00:54:24,840 --> 00:54:26,079 si, es not null 1220 00:54:26,079 --> 00:54:29,500 no, no, incluso poniéndolo 1221 00:54:29,500 --> 00:54:32,699 eso ya no lo sé, depende de que 1222 00:54:32,699 --> 00:54:33,940 llama, vale, pero bueno 1223 00:54:33,940 --> 00:54:36,699 con esto está ordenado 1224 00:54:36,699 --> 00:54:38,360 el array, vale, entonces 1225 00:54:38,360 --> 00:54:39,780 Si he ordenado la array 1226 00:54:39,780 --> 00:54:41,380 Ahora en primera posición 1227 00:54:41,380 --> 00:54:44,380 Encontraré el documento que yo quiero 1228 00:54:44,380 --> 00:54:45,840 ¿Si? 1229 00:54:46,400 --> 00:54:47,159 Entonces 1230 00:54:47,159 --> 00:54:50,179 Podría hacer una cosa 1231 00:54:50,179 --> 00:54:51,260 Como esta 1232 00:54:51,260 --> 00:54:54,079 For int is igual a 1233 00:54:54,079 --> 00:54:55,679 0 y menor de 1234 00:54:55,679 --> 00:54:57,619 Docs.languette 1235 00:54:57,619 --> 00:54:59,679 Punto coma y 1236 00:54:59,679 --> 00:55:01,400 Más más 1237 00:55:01,400 --> 00:55:06,599 Lo que hago es 1238 00:55:06,599 --> 00:55:07,539 Si 1239 00:55:07,539 --> 00:55:09,880 Docs 1240 00:55:09,880 --> 00:55:13,820 de i.contenido 1241 00:55:13,820 --> 00:55:15,400 .equals 1242 00:55:15,400 --> 00:55:18,920 Si ya has sido vaciado anteriormente 1243 00:55:18,920 --> 00:55:21,559 Siga adelante 1244 00:55:21,559 --> 00:55:28,000 Entonces, si not 1245 00:55:28,000 --> 00:55:30,039 Si esto no es verdad 1246 00:55:30,039 --> 00:55:31,760 Entonces lo vacío 1247 00:55:31,760 --> 00:55:37,550 Y si no, lo intento otra vez 1248 00:55:37,550 --> 00:55:38,170 Otra vez, otra vez 1249 00:55:38,170 --> 00:55:41,429 Además me meto una forma 1250 00:55:41,429 --> 00:55:43,150 De salir antes 1251 00:55:43,150 --> 00:55:46,289 bolean vaciado 1252 00:55:46,289 --> 00:55:47,349 igual a false 1253 00:55:47,349 --> 00:55:50,510 mientras que esto sea verdad 1254 00:55:50,510 --> 00:55:51,250 y 1255 00:55:51,250 --> 00:55:53,550 not vaciado 1256 00:55:53,550 --> 00:55:58,550 sigue haciendo 1257 00:55:58,550 --> 00:55:59,789 lo que tiene que hacer 1258 00:55:59,789 --> 00:56:01,610 cuando lo encuentres 1259 00:56:01,610 --> 00:56:04,570 el primero que encuentres puesto que son ordenados 1260 00:56:04,570 --> 00:56:06,389 entonces el primero será el primero más 1261 00:56:06,389 --> 00:56:08,710 de confidencialidad 1262 00:56:08,710 --> 00:56:10,789 más alta y el primero no vacío 1263 00:56:10,789 --> 00:56:11,750 que has encontrado 1264 00:56:11,750 --> 00:56:13,570 pues entonces vaciado 1265 00:56:13,570 --> 00:56:14,550 Saratrue 1266 00:56:14,550 --> 00:56:16,949 Así luego salgo 1267 00:56:16,949 --> 00:56:20,170 Y también vacío este documento 1268 00:56:20,170 --> 00:56:20,750 Entonces 1269 00:56:20,750 --> 00:56:22,369 Docs.di 1270 00:56:22,369 --> 00:56:24,670 Punto 1271 00:56:24,670 --> 00:56:28,070 Contenido 1272 00:56:28,070 --> 00:56:32,670 Es igual a nada 1273 00:56:32,670 --> 00:56:35,650 Si quiero le quito 1274 00:56:35,650 --> 00:56:37,630 El nivel de confidencialidad 1275 00:56:37,630 --> 00:56:42,309 Docs. 1276 00:56:42,309 --> 00:56:42,389 Punto 1277 00:56:42,389 --> 00:56:45,670 Que no puedo 1278 00:56:45,670 --> 00:56:48,190 Porque lo he puesto privado 1279 00:56:48,190 --> 00:56:50,130 Si no, para leer un documento 1280 00:56:50,130 --> 00:56:51,809 Lo acedo, le cambio el nivel de confianza 1281 00:56:51,809 --> 00:56:53,010 Y hago lo que me da la gana 1282 00:56:53,010 --> 00:56:54,190 ¿Vale? No puedo 1283 00:56:54,190 --> 00:56:58,679 Sí 1284 00:56:58,679 --> 00:56:59,980 No 1285 00:56:59,980 --> 00:57:02,019 Probablemente con el break 1286 00:57:02,019 --> 00:57:03,320 Podrías utilizarlo también, ¿eh? 1287 00:57:03,320 --> 00:57:03,440 Pero 1288 00:57:03,440 --> 00:57:08,780 Contenido 1289 00:57:08,780 --> 00:57:12,400 Esto me puede servir 1290 00:57:12,400 --> 00:57:14,780 De cara a que cuando salgo del for 1291 00:57:14,780 --> 00:57:16,699 Sé si se ha hecho el vaciado o no 1292 00:57:16,699 --> 00:57:17,760 ¿Vale? 1293 00:57:17,760 --> 00:57:18,880 Si esto sigue falso 1294 00:57:18,880 --> 00:57:19,900 Cuando salgo de aquí 1295 00:57:19,900 --> 00:57:21,920 Es que no me lo ha hecho 1296 00:57:21,920 --> 00:57:24,619 A lo mejor había un array 1297 00:57:24,619 --> 00:57:28,000 De documentos que ya han sido vaciados todos 1298 00:57:28,000 --> 00:57:30,239 Y entonces no me pilla ninguno 1299 00:57:30,239 --> 00:57:31,039 Y cuando sale aquí 1300 00:57:31,039 --> 00:57:33,059 Imaginaos que yo luego quiero hacer un programa 1301 00:57:33,059 --> 00:57:34,340 Que dice vacíame el archivo 1302 00:57:34,340 --> 00:57:37,000 Y me llame muchas veces vaciado, vaciado, vaciado 1303 00:57:37,000 --> 00:57:38,159 Hasta que esto 1304 00:57:38,159 --> 00:57:40,139 No se atreve 1305 00:57:40,139 --> 00:57:42,000 Por ejemplo 1306 00:57:42,000 --> 00:57:46,960 Contenido 1307 00:57:46,960 --> 00:57:49,780 Ahora tengo que borrar la longitud 1308 00:57:49,780 --> 00:57:51,420 O el 1309 00:57:51,420 --> 00:57:53,219 ¿Cómo se llama? 1310 00:57:53,460 --> 00:57:55,920 El número de páginas dependiendo de que es 1311 00:57:55,920 --> 00:57:57,159 Entonces ¿Cómo lo hago eso? 1312 00:58:01,789 --> 00:58:02,389 Si 1313 00:58:02,389 --> 00:58:05,110 Docs 1314 00:58:05,110 --> 00:58:06,730 D 1315 00:58:06,730 --> 00:58:07,030 D 1316 00:58:07,030 --> 00:58:10,170 Docs D 1317 00:58:10,170 --> 00:58:13,730 Instance 1318 00:58:13,730 --> 00:58:15,670 Of 1319 00:58:15,670 --> 00:58:18,429 Texto 1320 00:58:18,429 --> 00:58:40,119 Entonces, esta cosa de aquí, de texto del punto numPag es igual a cero. 1321 00:58:42,880 --> 00:58:57,139 Si en vez es un audio, no, porque si luego después creo también vídeo, a ver si no me va. 1322 00:58:57,320 --> 00:59:20,679 pero crear un método en documento abstracto 1323 00:59:20,679 --> 00:59:34,280 vamos a hacerlo 1324 00:59:34,280 --> 00:59:36,619 si esto no me gusta 1325 00:59:36,619 --> 00:59:39,559 lo que puedo hacer es 1326 00:59:39,559 --> 00:59:42,820 ir al documento y crearme un método 1327 00:59:42,820 --> 00:59:44,880 public 1328 00:59:44,880 --> 00:59:48,159 y void vaciar 1329 00:59:48,159 --> 00:59:51,360 Que lo que hace es vaciarme 1330 00:59:51,360 --> 00:59:52,500 La parte que puedo vaciar 1331 00:59:52,500 --> 00:59:53,840 Cuidado que ahora estoy en documento 1332 00:59:53,840 --> 00:59:56,460 Puedo hasta borrarme el nivel de confidencialidad si quiero 1333 00:59:56,460 --> 00:59:57,619 ¿Vale? 1334 00:59:58,440 --> 00:59:59,079 Entonces 1335 00:59:59,079 --> 00:59:59,980 Int 1336 00:59:59,980 --> 01:00:05,659 Is.contenido 1337 01:00:05,659 --> 01:00:07,199 Es igual a nada 1338 01:00:07,199 --> 01:00:08,380 Dis. 1339 01:00:08,380 --> 01:00:08,420 Dis. 1340 01:00:12,929 --> 01:00:14,889 Nivel de confidencialidad 1341 01:00:14,889 --> 01:00:19,289 Hagámoslo 1342 01:00:19,289 --> 01:00:21,349 Es igual a 1343 01:00:21,349 --> 01:00:29,730 No es verdad 1344 01:00:29,730 --> 01:00:31,389 Podría tener cosas más 1345 01:00:31,389 --> 01:00:33,829 Que está aquí, pero bueno, lo asumimos 1346 01:00:33,829 --> 01:00:36,530 Para hacerlo seguro 1347 01:00:36,530 --> 01:00:37,949 Podría ponerle menos uno 1348 01:00:37,949 --> 01:00:40,369 Porque lo dice por algún lado 1349 01:00:40,369 --> 01:00:42,550 Que el nivel más bajo es uno 1350 01:00:42,550 --> 01:00:44,710 Entonces 1351 01:00:44,710 --> 01:00:49,980 Hasta cero podría poner aquí 1352 01:00:49,980 --> 01:00:52,219 Solo que el problema es que luego cuando los ordeno 1353 01:00:52,219 --> 01:00:53,500 Me los pone todos delante 1354 01:00:53,500 --> 01:00:55,840 Y entonces cuando hago cualquier cosa sobre esta array 1355 01:00:55,840 --> 01:00:57,219 Antes me hace los vacíos 1356 01:00:57,219 --> 01:00:58,199 Que no me interesa 1357 01:00:58,199 --> 01:01:02,579 Lo hacemos así 1358 01:01:02,579 --> 01:01:04,960 Ahora, esta de aquí vacía un documento 1359 01:01:04,960 --> 01:01:07,519 Luego, en texto, por ejemplo 1360 01:01:07,519 --> 01:01:09,980 Lo que hago es implementar 1361 01:01:09,980 --> 01:01:11,820 Un public 1362 01:01:11,820 --> 01:01:13,940 Void 1363 01:01:13,940 --> 01:01:15,260 Vaciar, es lo que he llamado 1364 01:01:15,260 --> 01:01:18,699 Que lo que hace es 1365 01:01:18,699 --> 01:01:19,420 Super 1366 01:01:19,420 --> 01:01:21,760 Punto vaciar 1367 01:01:21,760 --> 01:01:28,920 Llámame 1368 01:01:28,920 --> 01:01:30,860 El vaciar de mi padre 1369 01:01:30,860 --> 01:01:32,860 Y luego vacía 1370 01:01:32,860 --> 01:01:33,960 Lo que yo quiero 1371 01:01:33,960 --> 01:01:39,300 O sea, this.numpatch es igual a 0 1372 01:01:39,300 --> 01:01:44,199 Este mismo lo hago en audio 1373 01:01:44,199 --> 01:01:45,519 Este es más elegante 1374 01:01:45,519 --> 01:01:47,840 ¿Veis que es más elegante? 1375 01:01:49,900 --> 01:01:57,079 Y aquí en vez de longitud le pongo longitud 1376 01:01:57,079 --> 01:02:01,000 ¿Por qué es más elegante? 1377 01:02:01,079 --> 01:02:02,519 Porque ahora desde aquí 1378 01:02:02,519 --> 01:02:05,679 En vez de hacer todas estas cosas de aquí 1379 01:02:05,679 --> 01:02:07,780 lo único que tengo que hacer es 1380 01:02:07,780 --> 01:02:12,699 docs.dei.vaciar 1381 01:02:12,699 --> 01:02:19,960 y por polimorfismo me llamará 1382 01:02:19,960 --> 01:02:24,699 el vaciar de audio o el vaciar de texto 1383 01:02:24,699 --> 01:02:28,449 correctamente 1384 01:02:28,449 --> 01:02:33,199 entonces esto de vaciar se vuelve 1385 01:02:33,199 --> 01:02:36,559 con estas dos aportaciones de ordenar los arrays 1386 01:02:36,559 --> 01:02:40,340 y luego después borrar el primero 1387 01:02:40,340 --> 01:02:42,539 Está claro que 1388 01:02:42,539 --> 01:02:44,780 Eso habría que verlo 1389 01:02:44,780 --> 01:02:47,179 Porque su documento 1390 01:02:47,179 --> 01:02:49,780 Es un archivo de un millón de documentos 1391 01:02:49,780 --> 01:02:51,519 No es lo mismo 1392 01:02:51,519 --> 01:02:53,840 Reordenar el millón 1393 01:02:53,840 --> 01:02:55,099 De cosas que 1394 01:02:55,099 --> 01:02:57,280 Pasar dos veces por ahí 1395 01:02:57,280 --> 01:03:01,480 Ordenar costa mucho más 1396 01:03:01,480 --> 01:03:03,079 Que simplemente hacer una palabra 1397 01:03:03,079 --> 01:03:05,760 Si ya está ordenado, tarda más que realmente reconocer 1398 01:03:05,760 --> 01:03:07,079 Tú no sabes si está ya ordenado 1399 01:03:07,079 --> 01:03:09,980 Está ordenado desde la última vez 1400 01:03:09,980 --> 01:03:18,880 que has vaciado. Otra cosa es que tú cada vez que hagas un rellenar, llames un ordenar 1401 01:03:18,880 --> 01:03:24,219 al final. Entonces, hasta no te serviría esto, porque cada vez que añades algo lo 1402 01:03:24,219 --> 01:03:30,500 ordenas. Pero es el mismo problema, cada vez que añades algo se te complica mucho la fase 1403 01:03:30,500 --> 01:03:38,119 de, en vez de añadirlo al final y ya está, pues, si queréis, esto. Probablemente, puesto 1404 01:03:38,119 --> 01:03:40,119 que lo tienes que hacer, no estaría 1405 01:03:40,119 --> 01:03:40,980 mal ponerlo aquí 1406 01:03:40,980 --> 01:03:46,969 después de haber añadido 1407 01:03:46,969 --> 01:03:49,010 en rellenar, lo ordeno 1408 01:03:49,010 --> 01:03:51,190 y así mi archivo está siempre ordenado 1409 01:03:51,190 --> 01:03:52,190 ahora 1410 01:03:52,190 --> 01:03:54,670 como estoy gastando 1411 01:03:54,670 --> 01:03:56,530 cosas en ordenarlo 1412 01:03:56,530 --> 01:03:58,550 a lo mejor leer documentos 1413 01:03:58,550 --> 01:04:00,650 estos de aquí que buscan un montón 1414 01:04:00,650 --> 01:04:01,989 que me han dado 1415 01:04:01,989 --> 01:04:03,769 un nivel de 1416 01:04:03,769 --> 01:04:06,789 no, esto no, aquí esto 1417 01:04:06,789 --> 01:04:07,289 sobre todo 1418 01:04:07,289 --> 01:04:10,710 este de aquí que se basa sobre el nivel 1419 01:04:10,710 --> 01:04:12,610 de confidencialidad en un array 1420 01:04:12,610 --> 01:04:14,610 ordenado, pues esto se puede 1421 01:04:14,610 --> 01:04:16,449 hacer mucho más eficiente, ahora que es 1422 01:04:16,449 --> 01:04:18,429 mi array ordenado. Voy 1423 01:04:18,429 --> 01:04:20,510 leyendo y el primero que encuentro 1424 01:04:20,510 --> 01:04:22,550 que está por encima de este de aquí 1425 01:04:22,550 --> 01:04:24,269 ya he acabado mi método, puedo salir. 1426 01:04:25,170 --> 01:04:26,369 No tengo que leerme el array 1427 01:04:26,369 --> 01:04:28,590 entero. No tengo ni siquiera que leer 1428 01:04:28,590 --> 01:04:30,170 sí, tengo que leer dos veces. 1429 01:04:30,329 --> 01:04:32,570 Pero no lo tengo que leer dos veces entero 1430 01:04:32,570 --> 01:04:34,610 sino que lo tengo que leer dos veces 1431 01:04:34,610 --> 01:04:35,949 solo la parte que me interesa. 1432 01:04:36,030 --> 01:04:37,969 ¿Puedes empezar por la mitad y así batiendo? 1433 01:04:38,929 --> 01:04:40,409 Cuando estás buscando ese número, ¿no? 1434 01:04:40,409 --> 01:04:46,530 No, porque necesito, como estoy buscando todos los menores que esto, pues seguramente los menores que esto están al principio. 1435 01:04:46,829 --> 01:04:47,730 Ah, bueno, al principio sí, claro. 1436 01:04:50,250 --> 01:04:54,670 Sería, le échelo a todos hasta que llegue al primero que sea superior a este de aquí. 1437 01:04:54,769 --> 01:04:55,090 Claro, claro. 1438 01:04:55,190 --> 01:04:59,010 Y allí me paro, hasta aquí hemos llegado. Vale, este es el trozo que tengo que copiar. 1439 01:05:02,230 --> 01:05:08,190 O sea que invertir en ordenar, pues me puede mejorar algunos de los métodos que ya tenía. 1440 01:05:08,530 --> 01:05:11,769 Cuando he hecho este método aquí no era ordenado, por lo tanto he tenido que devolver los dos. 1441 01:05:13,550 --> 01:05:20,460 Lo que he hecho es que 1442 01:05:20,460 --> 01:05:22,480 Como la única forma 1443 01:05:22,480 --> 01:05:24,260 Para que estén desordenados es cuando se añaden 1444 01:05:24,260 --> 01:05:26,760 Cuando yo lo añado, añado cosas desordenadas 1445 01:05:26,760 --> 01:05:28,300 Al final, si los ordeno 1446 01:05:28,300 --> 01:05:30,460 Si me aseguro que cada vez 1447 01:05:30,460 --> 01:05:32,539 Que añado algo, lo estoy ordenando bien 1448 01:05:32,539 --> 01:05:33,579 Ya está 1449 01:05:33,579 --> 01:05:35,820 Mento 1450 01:05:35,820 --> 01:05:38,500 Lo debería hacer también abajo 1451 01:05:38,500 --> 01:05:42,239 Porque cuando le estoy poniendo 1452 01:05:42,239 --> 01:05:44,460 Que su nivel 1453 01:05:44,460 --> 01:05:46,219 Se vuelve 9999 1454 01:05:46,219 --> 01:05:48,000 9 y por lo tanto lo estoy desordenando. 1455 01:05:49,039 --> 01:05:50,119 Suponiendo que usted es eso, 1456 01:05:50,159 --> 01:05:51,559 a lo mejor hay otro método para... 1457 01:05:51,559 --> 01:06:01,750 Porque casi todos estos de aquí, 1458 01:06:01,889 --> 01:06:03,250 sobre todo, hay este de aquí, 1459 01:06:04,730 --> 01:06:05,170 esto, 1460 01:06:05,289 --> 01:06:07,289 esto, 1461 01:06:07,829 --> 01:06:09,289 lo está buscando. 1462 01:06:09,909 --> 01:06:11,670 Entonces, si tú estás acumulando 1463 01:06:11,670 --> 01:06:13,929 todos los vacíos 1464 01:06:13,929 --> 01:06:16,090 al principio de mi array, 1465 01:06:16,570 --> 01:06:18,050 cada vez que haces 1466 01:06:18,050 --> 01:06:19,989 esto, estás pasando por un montón 1467 01:06:19,989 --> 01:06:21,409 de documentos vacíos 1468 01:06:21,409 --> 01:06:22,710 que no te sirven de nada. 1469 01:06:23,929 --> 01:06:27,929 A ver, todo este sistema está mal hecho, ¿vale? 1470 01:06:28,309 --> 01:06:33,710 Es para que vosotros hagáis un examen, no para que efectivamente me llame la CIA 1471 01:06:33,710 --> 01:06:37,929 y me diga, no obstante, hay policía aquí, que me diga, oye, mira, qué bien, 1472 01:06:38,090 --> 01:06:43,489 qué trabajo maravilloso habéis hecho con vuestros, os queremos todos allí. 1473 01:06:43,829 --> 01:06:46,369 Bueno, no, eso todavía faltará un par de años. 1474 01:06:46,369 --> 01:06:48,369 Para esto...