1 00:00:00,240 --> 00:00:26,219 Porque la idea es, la idea es, este es el array, ya muy pintorrojeado, entonces, esta por ejemplo, Daniel, perdón, ya, es que se ha escondido detrás de la torre, esta es la posición a eliminar, vale, entonces, ¿cómo vamos a hacer? 2 00:00:26,219 --> 00:00:29,739 Pues podemos visualizarlo así 3 00:00:29,739 --> 00:00:33,600 Voy a ir desde esta posición hasta el final 4 00:00:33,600 --> 00:00:36,259 Y en cada posición copio su siguiente 5 00:00:36,259 --> 00:00:40,600 Con lo cual, si en este array tengo 6 00:00:40,600 --> 00:00:42,780 Pues por ejemplo, en esta posición tengo 7 7 00:00:42,780 --> 00:00:47,640 En esta otra tuviera 8, por ejemplo 8 00:00:47,640 --> 00:00:52,520 En esta otra posición tuviera el 9 9 00:00:52,520 --> 00:00:54,439 vale, entonces 10 00:00:54,439 --> 00:00:57,420 el 8 lo copio en el 7 11 00:00:57,420 --> 00:00:59,479 fenomenal, el 7 desapareció, pues es lo que quería 12 00:00:59,479 --> 00:01:01,840 el 8 se queda replicado en los dos sitios 13 00:01:01,840 --> 00:01:03,820 pero es que luego en la siguiente iteración 14 00:01:03,820 --> 00:01:05,180 el 9 va a ir al 8 15 00:01:05,180 --> 00:01:07,400 entonces voy a conseguir ese efecto 16 00:01:07,400 --> 00:01:09,939 entonces mi bucle force será 17 00:01:09,939 --> 00:01:11,579 desde la posición 18 00:01:11,579 --> 00:01:13,680 hasta el penúltimo 19 00:01:13,680 --> 00:01:16,200 copiando el siguiente en la posición 20 00:01:16,200 --> 00:01:19,579 luego habréis hecho algo como este 21 00:01:19,579 --> 00:01:21,599 en mi ejemplo 22 00:01:21,599 --> 00:01:23,140 este es mi array 23 00:01:23,140 --> 00:01:25,879 de números y esta es mi 24 00:01:25,879 --> 00:01:27,859 posición a eliminar, para no meterla 25 00:01:27,859 --> 00:01:29,219 por teclado y ser más rápidos 26 00:01:29,219 --> 00:01:30,939 este es mi array y esta es mi posición 27 00:01:30,939 --> 00:01:33,359 podríamos probarlo con cualquier otra combinación 28 00:01:33,359 --> 00:01:35,459 y ahora desde esta posición 29 00:01:35,459 --> 00:01:37,840 hasta la penúltima, es decir 30 00:01:37,840 --> 00:01:39,840 desde esta hasta la penúltima 31 00:01:39,840 --> 00:01:41,540 copio 32 00:01:41,540 --> 00:01:43,620 la siguiente en ella 33 00:01:43,620 --> 00:01:45,019 la siguiente en ella 34 00:01:45,019 --> 00:01:47,900 entonces el efecto final 35 00:01:47,900 --> 00:01:48,640 si lo muestro 36 00:01:48,640 --> 00:01:51,400 es efectivamente haber perdido 37 00:01:51,400 --> 00:01:53,260 La posición a eliminar 38 00:01:53,260 --> 00:01:55,420 Porque habré copiado 39 00:01:55,420 --> 00:01:56,480 Esta en esta 40 00:01:56,480 --> 00:01:58,340 Esta en esta 41 00:01:58,340 --> 00:02:03,560 Entonces si ejecutamos esto, le doy la posición 2 42 00:02:03,560 --> 00:02:05,859 El 3 efectivamente lo va a eliminar 43 00:02:05,859 --> 00:02:07,480 El 3 lo va a eliminar 44 00:02:07,480 --> 00:02:09,180 Lo ejecutamos 45 00:02:09,180 --> 00:02:10,180 Y 46 00:02:10,180 --> 00:02:13,039 Efectivamente el 3 lo ha eliminado 47 00:02:13,039 --> 00:02:15,139 Y el 4 y el 5 los ha subido para allá 48 00:02:15,139 --> 00:02:19,120 Pero claro, la última posición 49 00:02:19,120 --> 00:02:21,879 Al desplazarlas todas, la última se ha quedado duplicada 50 00:02:21,879 --> 00:02:23,240 Pero es que esa está ahí sobrante 51 00:02:23,240 --> 00:02:26,319 Pero antes de hablar de eso 52 00:02:26,319 --> 00:02:28,400 Lo que importa es que este código 53 00:02:28,400 --> 00:02:30,539 Este claro 54 00:02:30,539 --> 00:02:32,319 Lo que hemos hecho y por qué lo hemos hecho así 55 00:02:32,319 --> 00:02:34,259 Más o menos 56 00:02:34,259 --> 00:02:38,139 Baja, baja 57 00:02:38,139 --> 00:02:40,599 Esto es para mostrar solo 58 00:02:40,599 --> 00:02:43,520 ¿Vale? 59 00:02:43,939 --> 00:02:44,860 A ver, tú mira 60 00:02:44,860 --> 00:02:50,419 Tú mira 61 00:02:50,419 --> 00:02:52,460 Tienes aquí este array 62 00:02:52,460 --> 00:02:55,319 ¿Vale? Tienes aquí este array 63 00:02:55,319 --> 00:02:58,379 Con estas posiciones 64 00:02:58,379 --> 00:03:02,569 ¿Vale? 65 00:03:02,889 --> 00:03:04,069 Y ahora te dicen 66 00:03:04,069 --> 00:03:07,009 Vamos a eliminar esta de aquí 67 00:03:07,009 --> 00:03:07,569 Por ejemplo 68 00:03:07,569 --> 00:03:10,349 Esta que tiene el circulito, vamos a eliminarlo 69 00:03:10,349 --> 00:03:12,289 Entonces, ¿qué es lo que estoy haciendo yo? 70 00:03:12,729 --> 00:03:14,530 ¿Vale? Pues vámonos con un bucle for 71 00:03:14,530 --> 00:03:16,430 Desde esta posición 72 00:03:16,430 --> 00:03:18,449 Hasta la penúltima 73 00:03:18,449 --> 00:03:21,150 Luego por eso tengo aquí un for 74 00:03:21,150 --> 00:03:22,409 Desde 75 00:03:22,409 --> 00:03:28,969 Desde la posición a eliminar, quizá aquí se ve más claro, si en lugar del 2 pongo posición a eliminar. 76 00:03:29,710 --> 00:03:31,389 Y así si la voy cambiando, pues la cambio ahí. 77 00:03:32,590 --> 00:03:40,050 Desde la posición a eliminar, desde la posición a eliminar, que es esta, o la que sea en este caso, hasta la penúltima, ¿qué hacemos? 78 00:03:41,110 --> 00:03:45,370 Pues la siguiente, que es i más 1 en i, que es lo que he hecho aquí. 79 00:03:45,870 --> 00:03:48,330 La siguiente, que es i más 1 en i. 80 00:03:48,330 --> 00:03:51,150 luego si este array tuviera 81 00:03:51,150 --> 00:03:52,229 imagínate que tiene 82 00:03:52,229 --> 00:03:54,409 aquí tiene un 7 83 00:03:54,409 --> 00:03:57,310 aquí tiene un 84 00:03:57,310 --> 00:03:59,270 8 por ejemplo 85 00:03:59,270 --> 00:04:03,310 aquí tiene un 10 por ejemplo 86 00:04:03,310 --> 00:04:04,129 por poner algo 87 00:04:04,129 --> 00:04:06,110 pues este bucle for que va haciendo 88 00:04:06,110 --> 00:04:09,250 cuando estamos en esta iteración 89 00:04:09,250 --> 00:04:09,650 de aquí 90 00:04:09,650 --> 00:04:13,069 a la posición 91 00:04:13,069 --> 00:04:13,770 i más 1 92 00:04:13,770 --> 00:04:16,550 le asigna la i más 1 93 00:04:16,550 --> 00:04:18,310 que es esta sentencia 94 00:04:18,329 --> 00:04:23,230 A la posición i le asigna la i más 1, que es la sentencia de ahí. 95 00:04:23,850 --> 00:04:32,750 Luego, el 7 se queda sobrescrito, ahí ha desaparecido, este 7 se queda sobrescrito, y el 8 se ha guardado ahí. 96 00:04:34,290 --> 00:04:39,790 ¿Vale? Entonces el 8 en este caso se ha quedado duplicado, claro, el 8 se ha guardado aquí, pero aquí sigue estando el 8. 97 00:04:40,750 --> 00:04:42,470 Ahora, siguiente iteración. 98 00:04:43,350 --> 00:04:47,910 Lo que hay aquí se va aquí, vale, ya el 8 se pilló, se pisó, y ahora tiene el 10. 99 00:04:48,329 --> 00:04:50,449 Claro, pero el 10 sigue duplicado 100 00:04:50,449 --> 00:04:51,949 Y así todo el rato 101 00:04:51,949 --> 00:04:52,870 Entonces al final 102 00:04:52,870 --> 00:04:55,170 El último número se queda duplicado 103 00:04:55,170 --> 00:04:56,569 Porque este ya no se pisa con nadie 104 00:04:56,569 --> 00:04:58,490 Porque este ya no tiene nadie detrás para que le pisen 105 00:04:58,490 --> 00:05:01,069 Por eso esta ejecución ha quedado así 106 00:05:01,069 --> 00:05:04,529 Han pasado todos arriba 107 00:05:04,529 --> 00:05:07,089 El 4 pisó el 3, el 5 pisó el 4 108 00:05:07,089 --> 00:05:08,569 Pero el 5 se ha quedado 109 00:05:08,569 --> 00:05:10,930 Porque no tiene nadie detrás que le pise a él 110 00:05:10,930 --> 00:05:15,550 Vale, las interacciones están yendo así 111 00:05:15,550 --> 00:05:17,910 Este pisa a este 112 00:05:17,910 --> 00:05:19,970 y aquí se han quedado ya dos 8 113 00:05:19,970 --> 00:05:22,149 pero ahora el 10 pisa el 8 114 00:05:22,149 --> 00:05:23,870 y ahora se han quedado aquí ya dos 10 115 00:05:23,870 --> 00:05:26,470 ahora este número pisará este 116 00:05:26,470 --> 00:05:28,170 y se quedará aquí dos veces 117 00:05:28,170 --> 00:05:29,889 este número pisará este 118 00:05:29,889 --> 00:05:32,069 y se quedará aquí dos veces, que es lo que nos ha pasado 119 00:05:32,069 --> 00:05:34,209 y ya está, y los dos últimos 120 00:05:34,209 --> 00:05:36,329 se quedan iguales, porque ya no tenemos uno más 121 00:05:36,329 --> 00:05:38,310 que pise a este otro 122 00:05:38,310 --> 00:05:42,170 Pablo y yo será 123 00:05:42,170 --> 00:05:47,110 girar a la derecha 124 00:05:47,110 --> 00:05:48,329 desplazarme a la derecha 125 00:05:48,329 --> 00:05:51,949 ¿Ah, sí? 126 00:05:54,750 --> 00:05:55,949 Porque en este bucle 127 00:05:55,949 --> 00:05:57,110 en el que voy copiando 128 00:05:57,110 --> 00:06:00,370 con el siguiente 1 129 00:06:00,370 --> 00:06:01,449 me tengo que dar el penúltimo 130 00:06:01,449 --> 00:06:03,230 porque si me llegara el último 131 00:06:03,230 --> 00:06:05,449 este me intentaría hacer el i más 1 132 00:06:05,449 --> 00:06:06,250 que es este al i 133 00:06:06,250 --> 00:06:07,870 y no existe i más 1 134 00:06:07,870 --> 00:06:09,410 entonces me quedo en el penúltimo 135 00:06:09,410 --> 00:06:11,069 para que este lo copie aquí 136 00:06:11,069 --> 00:06:13,689 por eso me he quedado en el penúltimo 137 00:06:13,689 --> 00:06:16,810 Bueno, entonces este código entendido 138 00:06:16,810 --> 00:06:20,649 vale, lo que pasa es que esto 139 00:06:20,649 --> 00:06:22,990 está claro, ¿no? más o menos 140 00:06:22,990 --> 00:06:24,829 como código, más o menos 141 00:06:24,829 --> 00:06:26,569 bueno, la idea está 142 00:06:26,569 --> 00:06:28,910 luego hay que 143 00:06:28,910 --> 00:06:30,089 volver a mirarla y 144 00:06:30,089 --> 00:06:32,550 vale, pues entonces, este código está 145 00:06:32,550 --> 00:06:34,250 precisamente hace algo 146 00:06:34,250 --> 00:06:36,870 que nos interesa hacer muy a menudo, que es 147 00:06:36,870 --> 00:06:39,269 hay un elemento 148 00:06:39,269 --> 00:06:41,269 de un array, me da igual que sea una cadena 149 00:06:41,269 --> 00:06:42,470 lo que sea, que no me gusta 150 00:06:42,470 --> 00:06:44,310 quiero sacarlo del array 151 00:06:44,310 --> 00:06:46,689 pero claro, como ya hemos dicho 152 00:06:46,689 --> 00:06:48,769 el array es un elemento de tamaño fijo 153 00:06:48,769 --> 00:06:50,610 estático, una vez que lo hemos 154 00:06:50,610 --> 00:06:52,470 declarado con 5 posiciones 155 00:06:52,470 --> 00:06:54,850 como es este, se va a quedar con 5 siempre 156 00:06:54,850 --> 00:06:56,750 entonces yo he desplazado los demás 157 00:06:56,750 --> 00:06:57,689 para que este se vaya 158 00:06:57,689 --> 00:07:00,550 pero el array sigue teniendo 5 posiciones 159 00:07:00,550 --> 00:07:01,790 entonces la última 160 00:07:01,790 --> 00:07:03,850 ahora es una posición inútil 161 00:07:03,850 --> 00:07:05,589 la última es inútil 162 00:07:05,589 --> 00:07:08,430 porque está ahí duplicándolo del último 163 00:07:08,430 --> 00:07:10,350 que ha subido para arriba, es una posición inútil 164 00:07:10,350 --> 00:07:12,529 entonces hombre, este código sería mucho 165 00:07:12,529 --> 00:07:13,810 más bonito si dijéramos 166 00:07:13,810 --> 00:07:15,810 oye, pero recórtalo 167 00:07:15,810 --> 00:07:18,110 recórtalo, si has eliminado uno 168 00:07:18,110 --> 00:07:19,829 los demás han subido 169 00:07:19,829 --> 00:07:21,649 pues el último 170 00:07:21,649 --> 00:07:23,069 ese no nos interesa 171 00:07:23,069 --> 00:07:24,889 vamos a recortarlo 172 00:07:24,889 --> 00:07:28,189 ¿se puede recortar un array? pues no se puede 173 00:07:28,189 --> 00:07:30,209 pero sí que se puede 174 00:07:30,209 --> 00:07:32,250 crear uno más pequeño 175 00:07:32,250 --> 00:07:34,110 y copiar la parte 176 00:07:34,110 --> 00:07:35,009 que nos interesa 177 00:07:35,009 --> 00:07:37,790 y esa es la única manera de hacerlo 178 00:07:37,790 --> 00:07:39,629 así es como funciona, que yo quiero un array 179 00:07:39,629 --> 00:07:41,329 y de repente tres elementos me sobran 180 00:07:41,329 --> 00:07:42,930 desplazo los demás 181 00:07:42,930 --> 00:07:45,629 se van a quedar tres posiciones al final 182 00:07:45,629 --> 00:07:46,470 que no me sirven para nada 183 00:07:46,470 --> 00:07:49,310 pues me falta la parte final que sería 184 00:07:49,310 --> 00:07:51,170 me voy a crear array 1 185 00:07:51,170 --> 00:07:53,230 con las posiciones que realmente me importan 186 00:07:53,230 --> 00:07:54,769 y copio esas posiciones 187 00:07:54,769 --> 00:07:57,589 y las sobrantes que se han quedado duplicadas 188 00:07:57,589 --> 00:07:58,029 ya está 189 00:07:58,029 --> 00:08:00,709 y esa es la única manera de hacerlo 190 00:08:00,709 --> 00:08:03,589 lo que pasa es que claro, uno no se está todo el rato 191 00:08:03,589 --> 00:08:05,769 cuando quieren sacar elementos del array 192 00:08:05,769 --> 00:08:09,310 creando un array nuevo, copiando 193 00:08:09,310 --> 00:08:11,189 porque ese código ya está hecho 194 00:08:11,189 --> 00:08:12,410 en funciones de librería 195 00:08:12,410 --> 00:08:15,089 ya está hecho y ya lo veremos 196 00:08:15,089 --> 00:08:16,610 con las colecciones de datos 197 00:08:16,610 --> 00:08:18,490 pero ahora estamos aprendiendo a programar 198 00:08:18,490 --> 00:08:20,430 no estamos aprendiendo a usar funciones de librería 199 00:08:20,430 --> 00:08:22,769 eso lo sabe hacer cualquiera 200 00:08:22,769 --> 00:08:25,189 ¿sí? 201 00:08:25,410 --> 00:08:26,730 la función de librería la sabe hacer cualquiera 202 00:08:26,730 --> 00:08:27,829 programar no la sabe hacer cualquiera 203 00:08:27,829 --> 00:08:29,930 entonces esa es vuestra diferencia 204 00:08:29,930 --> 00:08:31,970 vale, pues entonces 205 00:08:31,970 --> 00:08:33,769 vamos a 206 00:08:33,769 --> 00:08:38,639 nosotros tenemos que crear funciones de librería 207 00:08:38,639 --> 00:08:40,340 justo, hacer un código 208 00:08:40,340 --> 00:08:42,139 hacer códigos que otros puedan usar 209 00:08:42,139 --> 00:08:43,580 para hacer diferentes cosas, claro 210 00:08:43,580 --> 00:08:46,740 vamos a, como se ha quedado 211 00:08:46,740 --> 00:08:49,909 se ha quedado 212 00:08:49,909 --> 00:08:51,049 la última posición 213 00:08:51,049 --> 00:08:53,549 se ha quedado duplicada e inútil 214 00:08:53,549 --> 00:08:54,809 no la queremos para nada 215 00:08:54,809 --> 00:09:10,720 vale, pues vamos a crearnos 216 00:09:10,720 --> 00:09:13,399 un array de una posición menos 217 00:09:13,399 --> 00:09:15,320 que va a ser el resultado 218 00:09:15,320 --> 00:09:24,330 entonces, si el otro 219 00:09:24,330 --> 00:09:25,330 se llamaba números 220 00:09:25,330 --> 00:09:31,960 pues ala, este array result 221 00:09:31,960 --> 00:09:34,000 tiene una posición menos 222 00:09:34,000 --> 00:09:36,639 y ahora tenemos que copiar 223 00:09:36,639 --> 00:09:38,440 las primeras posiciones 224 00:09:38,440 --> 00:09:39,860 Salvo la última 225 00:09:39,860 --> 00:09:41,220 En este otro array 226 00:09:41,220 --> 00:09:43,559 Y ya este otro array mío sería el definitivo 227 00:09:43,559 --> 00:09:44,899 Entonces 228 00:09:44,899 --> 00:09:50,139 Copiar un array en otro a mogollón 229 00:09:50,139 --> 00:09:51,700 No se puede 230 00:09:51,700 --> 00:09:53,340 Hay que hacerlo por código 231 00:09:53,340 --> 00:09:55,639 Otra cosa es que haya funciones de librerías que lo hagan 232 00:09:55,639 --> 00:09:57,460 Pero hay que hacerlo por código 233 00:09:57,460 --> 00:09:59,980 No hay un operador como la suma, la resta 234 00:09:59,980 --> 00:10:02,019 Que se hace directamente Java lo sabe hacer 235 00:10:02,019 --> 00:10:03,399 No, esto hay que programarlo 236 00:10:03,399 --> 00:10:05,740 Pues tendremos que copiar 237 00:10:05,740 --> 00:10:06,600 Uno por uno 238 00:10:06,600 --> 00:10:10,110 Vamos a copiar 239 00:10:10,110 --> 00:10:15,379 Claro, es copiar uno por uno 240 00:10:15,379 --> 00:10:16,759 Posición por posición 241 00:10:16,759 --> 00:10:25,730 En result 242 00:10:25,730 --> 00:10:28,289 Excepto la última posición 243 00:10:28,289 --> 00:10:29,490 Que la última ya no la queremos 244 00:10:29,490 --> 00:10:32,350 Claro 245 00:10:32,350 --> 00:10:34,389 Recorremos 246 00:10:34,389 --> 00:10:35,950 Desde i igual a 0 247 00:10:35,950 --> 00:10:38,470 Mientras i sea menor que 248 00:10:38,470 --> 00:10:40,690 El tamaño de result, que es una menos que el otro 249 00:10:40,690 --> 00:10:43,389 Bueno, porque 250 00:10:43,389 --> 00:10:46,330 Estoy usando result ya, que ya tiene una menos 251 00:10:46,330 --> 00:10:50,730 Y ahora ya a result 252 00:10:50,730 --> 00:10:52,289 De i 253 00:10:52,289 --> 00:10:55,049 Números de i 254 00:10:55,049 --> 00:10:59,379 Y este sería mi array ya recortado 255 00:10:59,379 --> 00:11:01,720 Entonces ya la jugada final es 256 00:11:01,720 --> 00:11:06,690 Oye mi array de entrada era este 257 00:11:06,690 --> 00:11:08,450 Yo quiero que mi resultado final 258 00:11:08,450 --> 00:11:09,610 Este en mi array 259 00:11:09,610 --> 00:11:12,850 Pues ya la jugada final es 260 00:11:12,850 --> 00:11:14,970 Lo mismo con el contrario 261 00:11:14,970 --> 00:11:16,289 No, números 262 00:11:16,289 --> 00:11:17,230 Igual a result 263 00:11:17,230 --> 00:11:19,409 Y con esto ya nos quedamos 264 00:11:19,409 --> 00:11:20,690 Tan anchos 265 00:11:20,690 --> 00:11:25,070 Claro. Entonces, ¿qué estamos haciendo aquí? 266 00:11:26,389 --> 00:11:26,750 A ver. 267 00:11:35,629 --> 00:11:39,230 No, vacía no, es que ya no existe. 268 00:11:40,309 --> 00:11:40,529 A ver. 269 00:11:43,590 --> 00:11:44,429 Claro, a ver. 270 00:11:46,090 --> 00:11:48,730 ¿Qué hemos hecho? A ver, importante entender 271 00:11:48,730 --> 00:11:50,669 esto que hemos hecho, vamos a 272 00:11:50,669 --> 00:11:52,669 vale 273 00:11:52,669 --> 00:11:57,389 vale, teníamos 274 00:11:57,389 --> 00:11:58,809 nuestro array 275 00:11:58,809 --> 00:11:59,590 números 276 00:11:59,590 --> 00:12:04,120 nuestro array números 277 00:12:04,120 --> 00:12:06,720 que tenían los numeritos 278 00:12:06,720 --> 00:12:07,539 que fueran 279 00:12:07,539 --> 00:12:10,600 7, 3, 12, 4 280 00:12:10,600 --> 00:12:12,159 y 1, por ejemplo, vale 281 00:12:12,159 --> 00:12:14,539 ahora hemos hecho, mediante ese bucle 282 00:12:14,539 --> 00:12:16,539 for, le hemos dicho, oye 283 00:12:16,539 --> 00:12:18,740 vamos a eliminar esta posición, por ejemplo 284 00:12:18,740 --> 00:12:21,700 entonces hemos empezado un bucle for que empezaba aquí 285 00:12:21,700 --> 00:12:24,059 y acababa en el penúltimo y en cada iteración 286 00:12:24,059 --> 00:12:27,299 este copialo aquí, entonces ya nos quedaba 287 00:12:27,299 --> 00:12:30,600 12, 12, 4 y 1, siguiente iteración 288 00:12:30,600 --> 00:12:33,240 este copialo aquí, ya nos quedaba 289 00:12:33,240 --> 00:12:36,139 12, 4, 4 y 1 290 00:12:36,139 --> 00:12:37,500 vale, siguiente iteración 291 00:12:37,500 --> 00:12:41,919 este copialo aquí, vale, ya nos quedaba 292 00:12:41,919 --> 00:12:44,259 el 12 293 00:12:44,259 --> 00:12:47,639 4, 1 y el 1 294 00:12:47,639 --> 00:12:49,600 que es el que se ha quedado replicado 295 00:12:49,600 --> 00:12:51,179 después de haber hecho 296 00:12:51,179 --> 00:12:53,100 ese primer for de desplazar 297 00:12:53,100 --> 00:12:55,320 el array se ha quedado así efectivamente 298 00:12:55,320 --> 00:12:56,120 se ha quedado así 299 00:12:56,120 --> 00:12:58,740 ¿vale? se ha quedado 300 00:12:58,740 --> 00:13:01,360 7, el 3 se ha quedado pisado por el 12 301 00:13:01,360 --> 00:13:03,279 el 4 302 00:13:03,279 --> 00:13:04,559 ha subido donde estaba el 12 303 00:13:04,559 --> 00:13:07,019 el 1 ha subido donde estaba el 4 304 00:13:07,019 --> 00:13:09,500 y se ha quedado este 1 ahí sobrado 305 00:13:09,500 --> 00:13:11,340 vale, este es nuestro array final 306 00:13:11,340 --> 00:13:13,379 nuestro array números después de haber 307 00:13:13,379 --> 00:13:14,200 hecho estas copias 308 00:13:14,200 --> 00:13:16,820 pero nuestro resultado final 309 00:13:16,820 --> 00:13:19,159 querríamos que no fuera este 310 00:13:19,159 --> 00:13:21,360 sino querríamos que esta posición no existiera 311 00:13:21,360 --> 00:13:23,120 querríamos que números 312 00:13:23,120 --> 00:13:25,139 se convirtiera en un array 313 00:13:25,139 --> 00:13:27,179 de cuatro posiciones 314 00:13:27,179 --> 00:13:28,779 en vez de cinco, o sea, querríamos 315 00:13:28,779 --> 00:13:30,720 esta tirarla a la basura 316 00:13:30,720 --> 00:13:33,120 pero no se puede, un array una vez que 317 00:13:33,120 --> 00:13:33,779 se ha creado 318 00:13:33,779 --> 00:13:37,379 con cinco posiciones va a tener siempre cinco posiciones 319 00:13:37,379 --> 00:13:39,360 vale, pues ¿qué invento nos hemos 320 00:13:39,360 --> 00:13:41,220 hecho? nos hemos creado 321 00:13:41,220 --> 00:13:42,019 un array result 322 00:13:42,019 --> 00:13:46,279 de cuatro posiciones solo 323 00:13:46,279 --> 00:13:48,139 un array distinto, result 324 00:13:48,139 --> 00:13:55,080 Y ahora hemos llevado la 7 aquí, la 12 aquí, la 4 aquí y la 1 aquí. 325 00:13:56,039 --> 00:13:58,080 Esta no la hemos llevado a ningún sitio. 326 00:13:58,299 --> 00:13:59,080 Ahí se queda en números. 327 00:14:00,120 --> 00:14:06,840 Y ahora, este array result queremos que se convierta en nuestro array de partida. 328 00:14:07,759 --> 00:14:08,759 En nuestro array de partida. 329 00:14:09,279 --> 00:14:12,379 Pues ahora ya la última sentencia que hemos hecho es esta. 330 00:14:13,080 --> 00:14:15,299 Result, perdón, números. 331 00:14:16,840 --> 00:14:17,960 Hemos hecho esta. 332 00:14:18,139 --> 00:14:21,909 números igual a result 333 00:14:21,909 --> 00:14:23,970 y con esta 334 00:14:23,970 --> 00:14:25,889 sentencia, números 335 00:14:25,889 --> 00:14:27,889 igual a result, ahora ya 336 00:14:27,889 --> 00:14:29,870 números 337 00:14:29,870 --> 00:14:31,769 deja de apuntar al array 338 00:14:31,769 --> 00:14:34,110 números a donde estaba apuntando, deja de apuntar 339 00:14:34,110 --> 00:14:35,769 esto desaparece 340 00:14:35,769 --> 00:14:38,049 y números ahora ya empieza a apuntar 341 00:14:38,049 --> 00:14:38,509 a result 342 00:14:38,509 --> 00:14:41,889 ¿vale? luego ya mi array de partida 343 00:14:41,889 --> 00:14:43,889 números se ha convertido 344 00:14:43,889 --> 00:14:45,909 en este otro, que es mi resultado 345 00:14:45,909 --> 00:14:46,570 final bueno 346 00:14:46,570 --> 00:14:48,769 y este de aquí 347 00:14:48,769 --> 00:14:51,070 que se quedaba con ese 1 duplicado 348 00:14:51,070 --> 00:14:53,470 ya ha perdido su referencia 349 00:14:53,470 --> 00:14:55,230 no tiene nadie que le apunte 350 00:14:55,230 --> 00:14:56,929 ¿qué ocurría con eso? 351 00:14:57,070 --> 00:14:58,309 pues que el recolector de basura 352 00:14:58,309 --> 00:15:02,289 en cuanto se despierte dentro de unos cuantos milisegundos 353 00:15:02,289 --> 00:15:03,830 lo tirará a la basura 354 00:15:03,830 --> 00:15:07,169 luego el resultado final de este código 355 00:15:07,169 --> 00:15:08,330 es 356 00:15:08,330 --> 00:15:11,629 que mi array número se ha convertido 357 00:15:11,629 --> 00:15:12,610 en este otro 358 00:15:12,610 --> 00:15:15,529 que es un array distinto con una posición menos 359 00:15:15,529 --> 00:15:17,490 donde la que estaba entre medias 360 00:15:17,490 --> 00:15:19,009 desapareció 361 00:15:19,009 --> 00:15:22,049 luego el efecto final es ese, que la raíz se ha encogido 362 00:15:22,049 --> 00:15:25,750 expulsando al 3 363 00:15:25,750 --> 00:15:27,649 es el efecto final, la raíz se ha encogido 364 00:15:27,649 --> 00:15:30,230 expulsando al 3, pero la raíz no se ha encogido 365 00:15:30,230 --> 00:15:31,330 porque la raíz no se puede encoger 366 00:15:31,330 --> 00:15:33,730 si lo hemos creado como 5, son 5 367 00:15:33,730 --> 00:15:36,350 pero sí que podemos crear uno de 4 368 00:15:36,350 --> 00:15:37,970 copiar la parte 369 00:15:37,970 --> 00:15:38,870 que nos interesa 370 00:15:38,870 --> 00:15:41,490 y ahora ya sustituir esta variable 371 00:15:41,490 --> 00:15:43,090 números para que sea esta 372 00:15:43,090 --> 00:15:44,649 y este array ya 373 00:15:44,649 --> 00:15:46,950 ya no vale para nada 374 00:15:46,950 --> 00:15:50,289 ¿vale? 375 00:15:53,590 --> 00:15:56,269 porque es importante que entendáis que 376 00:15:56,269 --> 00:15:58,210 una variable array en realidad 377 00:15:58,210 --> 00:15:59,950 es la dirección de memoria 378 00:15:59,950 --> 00:16:02,049 de donde cuelgan las posiciones 379 00:16:02,049 --> 00:16:04,190 entonces si yo, si a esta variable 380 00:16:04,190 --> 00:16:05,350 array mío números 381 00:16:05,350 --> 00:16:07,710 le asigno esta dirección result 382 00:16:07,710 --> 00:16:10,409 pues mi variable array números automáticamente 383 00:16:10,409 --> 00:16:12,169 se convierte en esta variable array 384 00:16:12,169 --> 00:16:14,350 y si yo hago 385 00:16:14,350 --> 00:16:15,889 números de 0 pues será este, claro 386 00:16:15,889 --> 00:16:17,409 números de 1 será este, etc. 387 00:16:17,409 --> 00:16:21,980 Vale 388 00:16:21,980 --> 00:16:23,820 Entonces después de 389 00:16:23,820 --> 00:16:29,759 Haber hecho ya este número result 390 00:16:29,759 --> 00:16:31,379 Si yo muestro 391 00:16:31,379 --> 00:16:33,220 El array números 392 00:16:33,220 --> 00:16:42,980 Vamos a mostrar el original aquí 393 00:16:42,980 --> 00:16:44,580 Para que se vea bien 394 00:16:44,580 --> 00:16:46,440 Array original 395 00:16:46,440 --> 00:16:47,580 Vamos a mostrarle aquí 396 00:16:47,580 --> 00:16:53,250 Bueno voy a 397 00:16:53,250 --> 00:16:56,730 Vale voy a mostrar array números 398 00:16:56,730 --> 00:16:58,590 Antes de hacer nada 399 00:16:58,590 --> 00:17:01,639 Antes de hacer nada 400 00:17:01,639 --> 00:17:02,820 Vamos a mostrar como es 401 00:17:02,820 --> 00:17:06,740 Mostramos el array números antes de hacer nada 402 00:17:06,740 --> 00:17:08,500 Ahora ya hacemos todo lo que hemos dicho 403 00:17:08,500 --> 00:17:11,000 Y volvemos a mostrar 404 00:17:11,000 --> 00:17:12,240 Ese mismo array números 405 00:17:12,240 --> 00:17:13,579 Volvemos a mostrarlo 406 00:17:13,579 --> 00:17:16,180 Voy a poner un system.println 407 00:17:16,180 --> 00:17:18,279 Para que se vaya el n de abajo 408 00:17:18,279 --> 00:17:20,440 Que baje la cosa 409 00:17:20,440 --> 00:17:27,579 La vida subiendo, bajando 410 00:17:27,579 --> 00:17:28,779 Metiendo, sacando 411 00:17:28,779 --> 00:17:30,799 Todas las combinaciones posibles 412 00:17:30,799 --> 00:17:32,220 Venga 413 00:17:32,220 --> 00:17:34,319 Me falta aquí poner un 414 00:17:34,319 --> 00:17:37,700 Voy a poner un system.out.println 415 00:17:37,700 --> 00:17:38,559 Para que se salte 416 00:17:38,559 --> 00:17:40,920 Pues vamos a ver el efecto de esto 417 00:17:40,920 --> 00:17:41,900 Lo ejecutamos 418 00:17:41,900 --> 00:17:44,319 Joder, algo 419 00:17:44,319 --> 00:17:46,880 Ah bueno, porque es que le he mostrado dos veces el original 420 00:17:46,880 --> 00:17:47,660 Vale, a ver 421 00:17:47,660 --> 00:17:50,779 ¿Dónde tengo yo un...? 422 00:17:50,779 --> 00:17:52,359 Aquí muestro el que acabo de crear 423 00:17:52,359 --> 00:17:55,240 Me hago toda esa combinación 424 00:17:55,240 --> 00:17:56,980 Este es el que me sobra 425 00:17:56,980 --> 00:18:01,039 Me hago esto y lo vuelvo a mostrar 426 00:18:01,039 --> 00:18:04,859 vale, pues si lo ejecuto 427 00:18:04,859 --> 00:18:06,619 efectivamente, este es mi 428 00:18:06,619 --> 00:18:07,900 array números original 429 00:18:07,900 --> 00:18:10,440 y este es mi array números final 430 00:18:10,440 --> 00:18:12,680 el aspecto, la impresión 431 00:18:12,680 --> 00:18:14,279 que da es que se ha cortado o no se ha cortado 432 00:18:14,279 --> 00:18:16,599 a veces que he creado uno nuevo, he copiado la parte que me 433 00:18:16,599 --> 00:18:18,480 interesa y he 434 00:18:18,480 --> 00:18:20,299 sustituido luego uno por el otro 435 00:18:20,299 --> 00:18:25,000 que cambiamos la posición a eliminar 436 00:18:25,000 --> 00:18:26,339 voy a cambiar la posición 437 00:18:26,339 --> 00:18:29,119 vamos a eliminar la 1 438 00:18:29,119 --> 00:18:31,140 por ejemplo, posición a eliminar la 1 439 00:18:31,140 --> 00:18:32,900 lo ejecuto 440 00:18:32,900 --> 00:18:35,259 Y ha efectivamente eliminado la 1 441 00:18:35,259 --> 00:18:37,500 Ha eliminado la 1 442 00:18:37,500 --> 00:18:38,099 Que es esta 443 00:18:38,099 --> 00:18:47,680 Pues echar el día a perros 444 00:18:47,680 --> 00:18:48,759 Eso es lo que hacen 445 00:18:48,759 --> 00:18:51,940 Pues no lo descartes 446 00:18:51,940 --> 00:18:54,240 Cuanto más grites más van aprobados 447 00:18:54,240 --> 00:18:55,960 Aprobaste gritos 448 00:18:55,960 --> 00:18:57,759 Este ya tiene asignatura 449 00:18:57,759 --> 00:18:59,819 Hombre la asignatura 450 00:18:59,819 --> 00:19:01,640 Asignatura disfraz de Halloween 451 00:19:01,640 --> 00:19:02,880 Asignatura de gritos 452 00:19:02,880 --> 00:19:04,380 Claro 453 00:19:04,380 --> 00:19:09,700 Bueno pues 454 00:19:09,700 --> 00:19:31,579 Así que cuidadín 455 00:19:31,579 --> 00:19:33,579 Que el cuchillo lo maneja y que da gusto 456 00:19:33,579 --> 00:19:34,660 ¿Cómo? 457 00:19:35,759 --> 00:19:36,519 Eso es de Scream 458 00:19:36,519 --> 00:19:46,400 Venga, pues entonces, dime 459 00:19:46,400 --> 00:19:50,079 Claro que sí