1 00:00:00,000 --> 00:00:02,940 vamos a recorrer el map 2 00:00:02,940 --> 00:00:06,219 de otra manera 3 00:00:06,219 --> 00:00:06,919 ¿vale? 4 00:00:08,919 --> 00:00:10,019 de otra manera 5 00:00:10,019 --> 00:00:11,619 que en realidad es más habitual 6 00:00:11,619 --> 00:00:12,980 ¿eh? 7 00:00:14,019 --> 00:00:14,619 no 8 00:00:14,619 --> 00:00:17,239 no es un iterador 9 00:00:17,239 --> 00:00:22,420 un iterador lo puedes sacar de colecciones 10 00:00:22,420 --> 00:00:23,739 entonces si te haces un keyset 11 00:00:23,739 --> 00:00:25,699 pues sí, un iterador sobre las claves 12 00:00:25,699 --> 00:00:27,780 pero un iterador en sí sobre el map 13 00:00:27,780 --> 00:00:28,480 no 14 00:00:28,480 --> 00:00:31,760 Pero para el lugar de literador tienes esta otra cosa 15 00:00:31,760 --> 00:00:33,899 Vale, a ver 16 00:00:33,899 --> 00:00:35,140 ¡Silencio! 17 00:00:39,039 --> 00:00:40,140 Eso no gusta más 18 00:00:40,140 --> 00:00:40,380 Oye 19 00:00:40,380 --> 00:00:43,780 Venga, a ver, bueno, pues vamos a ver otra forma 20 00:00:43,780 --> 00:00:44,659 De recorrer el map 21 00:00:44,659 --> 00:00:47,340 Este es nuestro map de personas 22 00:00:47,340 --> 00:00:49,520 Que que sea trimap 23 00:00:49,520 --> 00:00:51,939 Lo único que ha implicado es esto de aquí 24 00:00:51,939 --> 00:00:53,299 ¿Vale? 25 00:00:54,200 --> 00:00:54,520 Vale 26 00:00:54,520 --> 00:00:56,799 Bueno, pues entonces 27 00:00:56,799 --> 00:00:58,840 fijaos que al ser un trimap 28 00:00:58,840 --> 00:01:01,200 las claves se guardan en un triset 29 00:01:01,200 --> 00:01:02,899 entonces 30 00:01:02,899 --> 00:01:04,140 ¿qué era un triset? 31 00:01:04,620 --> 00:01:06,200 un conjunto de elementos 32 00:01:06,200 --> 00:01:10,400 guardaditos en un árbol 33 00:01:10,400 --> 00:01:12,579 y el triset por dentro 34 00:01:12,579 --> 00:01:15,060 los ha guardado siguiendo un criterio 35 00:01:15,060 --> 00:01:15,519 de orden 36 00:01:15,519 --> 00:01:17,799 el criterio de orden del comparable 37 00:01:17,799 --> 00:01:18,680 entonces 38 00:01:18,680 --> 00:01:22,760 si nosotros iteramos por el map 39 00:01:22,760 --> 00:01:24,980 vamos a ver que nos 40 00:01:24,980 --> 00:01:26,000 va a ir sacando 41 00:01:26,000 --> 00:01:28,540 en orden de 42 00:01:28,540 --> 00:01:29,739 clave. 43 00:01:30,500 --> 00:01:32,200 ¿Vale? Porque 44 00:01:32,200 --> 00:01:34,700 esto es un trimap. Luego él ha metido 45 00:01:34,700 --> 00:01:36,379 las claves en un 46 00:01:36,379 --> 00:01:36,760 triset. 47 00:01:38,019 --> 00:01:40,439 Está en un triset. Cuando iteramos en un 48 00:01:40,439 --> 00:01:42,579 triset, con un for each, 49 00:01:43,120 --> 00:01:44,519 por ejemplo, cuando iteramos 50 00:01:44,519 --> 00:01:46,519 en un triset, como estamos iterando 51 00:01:46,519 --> 00:01:48,500 aquí, ¿verdad? Estamos iterando 52 00:01:48,500 --> 00:01:50,500 por el set de claves, pues el 53 00:01:50,500 --> 00:01:51,000 triset 54 00:01:51,000 --> 00:01:54,260 te los va mostrando ordenaditos 55 00:01:54,260 --> 00:01:55,420 según el orden del comparable. 56 00:01:56,000 --> 00:01:57,560 Ya está como anécdota, me refiero. 57 00:01:58,019 --> 00:02:01,719 La única implicación que tiene elegir un triset respecto a un 58 00:02:01,719 --> 00:02:06,819 haset es, primera, que estás obligado a que la clase a la 59 00:02:06,819 --> 00:02:11,139 que pertenece en los elementos del conjunto implemente el 60 00:02:11,139 --> 00:02:14,159 comparable y que luego cuando iteras te van a aparecer 61 00:02:14,159 --> 00:02:15,180 ordenados por ese orden. 62 00:02:15,439 --> 00:02:16,319 Ya está, nada más. 63 00:02:17,860 --> 00:02:20,400 Bueno, pues, entonces, otra manera de iterar por el mapa 64 00:02:20,400 --> 00:02:22,240 de personas, por el mapa de personas. 65 00:02:23,500 --> 00:02:23,719 Vale. 66 00:02:23,719 --> 00:02:47,060 Pues entonces, si nosotros mirábamos los métodos que tenía el map, miramos aquí en personas los métodos que tiene el map, pues hemos llegado a uno que era entry set, así que me lo he pasado. 67 00:02:47,060 --> 00:02:49,819 aquí, este 68 00:02:49,819 --> 00:02:52,560 vale, el entry set 69 00:02:52,560 --> 00:02:53,479 ¿para qué sirve? 70 00:02:54,099 --> 00:02:55,719 el entry set su objetivo es 71 00:02:55,719 --> 00:02:58,020 oye, no puedes operar en un mapa 72 00:02:58,020 --> 00:02:59,740 porque son pares 73 00:02:59,740 --> 00:03:02,020 entonces tú solamente puedes operar en colecciones 74 00:03:02,020 --> 00:03:03,240 de elementos sencillos 75 00:03:03,240 --> 00:03:06,680 en listas o en set que tiene elementos sencillos 76 00:03:06,680 --> 00:03:08,460 en un map no está 77 00:03:08,460 --> 00:03:10,379 pensado el for each 78 00:03:10,379 --> 00:03:12,159 no puedes tirar con un for each porque son pares 79 00:03:12,159 --> 00:03:13,759 entonces el for each ¿por dónde iría? 80 00:03:13,860 --> 00:03:15,159 ¿por las claves? ¿por los valores? 81 00:03:15,300 --> 00:03:16,500 no se puede tirar en un for each 82 00:03:16,500 --> 00:03:19,099 en un conjunto de pares 83 00:03:19,099 --> 00:03:21,180 vale, pues ¿qué es lo que hace 84 00:03:21,180 --> 00:03:23,280 el entry set? coge cada par 85 00:03:23,280 --> 00:03:24,840 y te lo mete 86 00:03:24,840 --> 00:03:26,639 en un objeto 87 00:03:26,639 --> 00:03:28,620 que tiene dentro 88 00:03:28,620 --> 00:03:29,860 la clave y el valor 89 00:03:29,860 --> 00:03:32,379 entonces eso es lo que hace el entry set 90 00:03:32,379 --> 00:03:34,699 te genera un conjunto de objetos 91 00:03:34,699 --> 00:03:36,800 ahora ya de objetos únicos 92 00:03:36,800 --> 00:03:38,539 donde cada objeto 93 00:03:38,539 --> 00:03:41,099 tiene dentro la clave y el valor 94 00:03:41,099 --> 00:03:43,039 es decir, te hace un envolvente 95 00:03:43,039 --> 00:03:43,539 del par 96 00:03:43,539 --> 00:03:45,740 te hace un envolvente del par 97 00:03:45,740 --> 00:03:46,840 en un objeto 98 00:03:46,840 --> 00:03:49,539 y ahora tú ya como eso ya es una colección 99 00:03:49,539 --> 00:03:50,740 de objetos sencillos 100 00:03:50,740 --> 00:03:52,139 vas recorriendo 101 00:03:52,139 --> 00:03:55,159 y de cada objeto ya sacas lo que tiene dentro 102 00:03:55,159 --> 00:03:56,759 que es la clave y el valor 103 00:03:56,759 --> 00:03:59,139 pues eso es el objetivo de este método 104 00:03:59,139 --> 00:04:01,159 y ese 105 00:04:01,159 --> 00:04:03,020 ese objeto que te saca 106 00:04:03,020 --> 00:04:05,340 ese objeto envolvente del par 107 00:04:05,340 --> 00:04:06,960 ¿de qué clase es? 108 00:04:07,719 --> 00:04:08,780 pues es de esta clase 109 00:04:08,780 --> 00:04:11,599 de una clase 110 00:04:11,599 --> 00:04:12,500 que se llama entry 111 00:04:12,500 --> 00:04:16,600 entonces te devuelve 112 00:04:16,600 --> 00:04:18,240 un conjunto 113 00:04:18,240 --> 00:04:20,819 de objetos 114 00:04:20,819 --> 00:04:22,139 de clase entry 115 00:04:22,139 --> 00:04:24,899 y cada uno de estos objetos tiene dentro 116 00:04:24,899 --> 00:04:25,680 la clave y el valor 117 00:04:25,680 --> 00:04:29,120 entonces como ahora ya sí que tienes un conjunto de objetos simples 118 00:04:29,120 --> 00:04:30,839 aunque tengan dentro todo lo que tengan 119 00:04:30,839 --> 00:04:31,980 pero ya son objetos simples 120 00:04:31,980 --> 00:04:34,480 ya puedes iterar, lo hemos iterado por toda la vida 121 00:04:34,480 --> 00:04:37,100 pues venga, vamos a hacerlo 122 00:04:37,100 --> 00:04:37,759 de esta manera 123 00:04:37,759 --> 00:04:39,560 entonces 124 00:04:39,560 --> 00:04:43,339 Pues sí, porque además tiene otra particularidad 125 00:04:43,339 --> 00:04:43,899 Interesante 126 00:04:43,899 --> 00:04:45,660 Vamos a sacar el entry set 127 00:04:45,660 --> 00:04:47,980 No te precipites 128 00:04:47,980 --> 00:04:50,980 El entry set 129 00:04:50,980 --> 00:04:51,939 Que nos devuelve 130 00:04:51,939 --> 00:04:56,819 Un objeto de este tipo 131 00:04:56,819 --> 00:04:59,079 Integer 132 00:04:59,079 --> 00:05:00,360 Porque en nuestro caso 133 00:05:00,360 --> 00:05:01,399 Integer 134 00:05:01,399 --> 00:05:03,100 No, era string 135 00:05:03,100 --> 00:05:04,139 Perdón 136 00:05:04,139 --> 00:05:07,139 String 137 00:05:07,139 --> 00:05:10,079 persona 138 00:05:10,079 --> 00:05:14,410 ¿cómo lo podemos llamar? 139 00:05:19,709 --> 00:05:20,310 Personas 140 00:05:20,310 --> 00:05:22,389 Personas entry 141 00:05:22,389 --> 00:05:24,410 yo que sé, para decir que estas son las personas 142 00:05:24,410 --> 00:05:26,449 pero metidas en esto 143 00:05:26,449 --> 00:05:27,949 Personas entry 144 00:05:27,949 --> 00:05:29,689 y ahora entry, pues claro 145 00:05:29,689 --> 00:05:31,050 habrá que importarlo 146 00:05:31,050 --> 00:05:32,810 ¿y la clase entry dónde está? 147 00:05:33,529 --> 00:05:34,810 En java útil map 148 00:05:34,810 --> 00:05:36,970 está, vale 149 00:05:36,970 --> 00:05:56,209 perdona, y de un set de estos 150 00:05:56,209 --> 00:05:58,410 claro, te devuelve un set, no una única 151 00:05:58,410 --> 00:05:59,529 claro 152 00:05:59,529 --> 00:06:01,769 te devuelve un conjunto de varias de estas 153 00:06:01,769 --> 00:06:03,009 claro 154 00:06:03,009 --> 00:06:06,149 vale, en triset 155 00:06:06,149 --> 00:06:08,230 te devuelve el conjunto 156 00:06:08,230 --> 00:06:10,589 de todas estas, cada una de ellas 157 00:06:10,589 --> 00:06:12,550 cada una de ellas 158 00:06:12,550 --> 00:06:14,009 es el objeto que tiene dentro 159 00:06:14,009 --> 00:06:14,850 la clave y el valor 160 00:06:14,850 --> 00:06:16,329 ¿vale? 161 00:06:17,290 --> 00:06:17,730 dime 162 00:06:17,730 --> 00:06:25,009 a ver 163 00:06:25,009 --> 00:06:28,269 esto tiene que ver con las clases genéricas 164 00:06:28,269 --> 00:06:30,269 que te ibas a ver estudiado 165 00:06:30,269 --> 00:06:32,209 en el vídeo que pone clases genéricas 166 00:06:32,209 --> 00:06:34,069 no es el funcionamiento de los signos 167 00:06:34,069 --> 00:06:35,069 no es signo menor y menor 168 00:06:35,069 --> 00:06:38,069 las clases a las que acompañan 169 00:06:38,629 --> 00:06:40,670 significa que son clases 170 00:06:40,670 --> 00:06:42,709 a las que tú le puedes 171 00:06:42,709 --> 00:06:44,670 particularizar el tipo de dato con el que van a 172 00:06:44,670 --> 00:06:46,750 trabajar. Y tú solo particularizas 173 00:06:46,750 --> 00:06:48,750 poniendo el tipo de dato entre esos símbolos. 174 00:06:54,610 --> 00:06:56,910 Justo. Entry es un objeto 175 00:06:56,910 --> 00:06:58,449 entry que tiene dentro 176 00:06:58,449 --> 00:07:00,810 un string y una persona. 177 00:07:01,370 --> 00:07:02,709 Y luego a su vez, set 178 00:07:02,709 --> 00:07:04,769 está trabajando con ese objeto entry. 179 00:07:05,689 --> 00:07:07,069 Eso. Con un conjunto 180 00:07:07,069 --> 00:07:07,490 de entry. 181 00:07:08,910 --> 00:07:12,610 Vale. Pues ahora ya como 182 00:07:12,610 --> 00:07:13,629 esto es un conjunto, 183 00:07:13,629 --> 00:07:15,769 de objetos de este tipo 184 00:07:15,769 --> 00:07:18,269 ahora ya lo podemos iterar 185 00:07:18,269 --> 00:07:19,069 entonces 186 00:07:19,069 --> 00:07:22,670 pues para cada uno de estos 187 00:07:22,670 --> 00:07:25,839 para cada uno 188 00:07:25,839 --> 00:07:26,639 de estos 189 00:07:26,639 --> 00:07:31,120 como lo queramos llamar 190 00:07:31,120 --> 00:07:32,920 que está en este de aquí 191 00:07:32,920 --> 00:07:40,670 pues ahora ya para cada uno de estos 192 00:07:40,670 --> 00:07:42,009 podemos sacar 193 00:07:42,009 --> 00:07:45,079 la clave 194 00:07:45,079 --> 00:07:49,370 y el valor 195 00:07:49,370 --> 00:07:50,949 porque lo tienen dentro 196 00:07:50,949 --> 00:08:04,730 ¿vale? luego es la forma más general 197 00:08:04,730 --> 00:08:06,129 de recorrer el mapa 198 00:08:06,129 --> 00:08:08,170 metes cada entrada 199 00:08:08,170 --> 00:08:09,370 del mapa, o sea, cada par 200 00:08:09,370 --> 00:08:11,990 lo metes en un objeto de este estilo 201 00:08:11,990 --> 00:08:14,329 y ahora ya recorres ese conjunto 202 00:08:14,329 --> 00:08:16,029 de objetos y 203 00:08:16,029 --> 00:08:18,209 sacas lo que te interese, la clave, el valor 204 00:08:18,209 --> 00:08:20,149 del valor, pues 205 00:08:20,149 --> 00:08:22,329 le cambias una propiedad, lo que tú quieras 206 00:08:22,329 --> 00:08:23,230 ¿vale? 207 00:08:26,759 --> 00:08:27,240 Entonces 208 00:08:27,240 --> 00:08:32,700 Entry 209 00:08:32,700 --> 00:08:34,500 lo que le ocurre es que 210 00:08:34,500 --> 00:08:36,799 luego además tiene métodos 211 00:08:36,799 --> 00:08:41,299 para modificar 212 00:08:41,299 --> 00:08:43,440 incluso las cosas del mapa a través de él 213 00:08:43,440 --> 00:08:46,399 Entry, pues el objeto Entry 214 00:08:46,399 --> 00:08:47,840 Tiene estos dos métodos que hemos dicho 215 00:08:47,840 --> 00:08:49,860 Get para recoger la clave que tiene dentro 216 00:08:49,860 --> 00:08:51,399 Y esto para recoger el valor 217 00:08:51,399 --> 00:08:54,700 Pero es que tiene también 218 00:08:54,700 --> 00:08:55,440 Un setValue 219 00:08:55,440 --> 00:08:57,940 Y el setValue 220 00:08:57,940 --> 00:09:00,879 Te fija en ese objeto 221 00:09:00,879 --> 00:09:02,419 El valor lo cambia a otra persona 222 00:09:02,419 --> 00:09:03,059 En este caso 223 00:09:03,059 --> 00:09:06,120 Pero es que ese objeto 224 00:09:06,120 --> 00:09:07,679 Está sincronizado con el propio mapa 225 00:09:07,679 --> 00:09:09,759 Entonces si yo lo cambio ahí 226 00:09:09,759 --> 00:09:12,240 En el map personas también se cambia 227 00:09:12,240 --> 00:09:35,240 Que esa es la ventaja que tengo, porque diríamos, jolines, vale, esta forma de recorrerlo, uy, qué susto, hola, uno podría decir, con todo el sentido del mundo, esta forma de recorrerlo está estupenda, pero yo no estoy recorriendo el propio mapa, no estoy recorriendo los pares. 228 00:09:35,240 --> 00:09:38,120 estoy recorriendo un conjunto 229 00:09:38,120 --> 00:09:39,980 aparte que tiene 230 00:09:39,980 --> 00:09:41,980 estos valores aquí copiados 231 00:09:41,980 --> 00:09:43,960 dentro, claro, entonces yo diría 232 00:09:43,960 --> 00:09:45,820 ya para consultar bien, pero si cambio 233 00:09:45,820 --> 00:09:47,480 el valor que está aquí dentro la persona 234 00:09:47,480 --> 00:09:49,740 porque la clave no debería, pues entonces se pierde la esencia 235 00:09:49,740 --> 00:09:51,559 de todo, pues el mapa no 236 00:09:51,559 --> 00:09:52,899 ¿cómo hago modificaciones en el mapa? 237 00:09:53,759 --> 00:09:55,840 bueno, pues puedes, porque si tú 238 00:09:55,840 --> 00:09:57,759 actualizas el value desde el propio 239 00:09:57,759 --> 00:09:59,720 entry con set value, en el mapa 240 00:09:59,720 --> 00:10:01,460 al que está conectado también se va a cambiar 241 00:10:01,460 --> 00:10:02,659 ¿vale? 242 00:10:02,659 --> 00:10:05,659 es la particularidad que tiene 243 00:10:05,659 --> 00:10:07,159 por ejemplo, vamos a hacer 244 00:10:07,159 --> 00:10:08,899 claro, este bucle 245 00:10:08,899 --> 00:10:10,940 vamos a hacer lo que ya tenemos aquí 246 00:10:10,940 --> 00:10:11,799 un montón de 247 00:10:11,799 --> 00:10:15,419 vamos a cambiar el nombre 248 00:10:15,419 --> 00:10:17,659 de la persona que se llame con un DNI cualquiera 249 00:10:17,659 --> 00:10:25,960 cambia nombre 250 00:10:25,960 --> 00:10:26,519 entonces 251 00:10:26,519 --> 00:10:29,600 la persona que tiene este NIF 252 00:10:29,600 --> 00:10:32,580 le vamos a poner 253 00:10:32,580 --> 00:10:34,500 este nuevo nombre 254 00:10:34,500 --> 00:10:39,980 Y dentro de qué conjunto de datos 255 00:10:39,980 --> 00:10:41,559 Pues de un map de personas 256 00:10:41,559 --> 00:10:42,440 Que le vamos a pasar 257 00:10:42,440 --> 00:10:46,100 Dentro de un map de personas 258 00:10:46,100 --> 00:10:47,240 Que le vamos a pasar 259 00:10:47,240 --> 00:10:53,200 También, sí 260 00:10:53,200 --> 00:10:55,279 String 261 00:10:55,279 --> 00:11:00,000 Persona 262 00:11:00,000 --> 00:11:02,059 Personas 263 00:11:02,059 --> 00:11:08,889 Vale, pues entonces 264 00:11:08,889 --> 00:11:12,610 Tenemos que recorrer el mapa 265 00:11:12,610 --> 00:11:13,250 Para cambiar 266 00:11:13,250 --> 00:11:15,190 Pues nada 267 00:11:15,190 --> 00:11:16,190 Vamos a recorrerlo 268 00:11:16,190 --> 00:11:19,289 Como ya hemos visto 269 00:11:19,289 --> 00:11:25,730 Lo recorremos así 270 00:11:25,730 --> 00:11:29,110 Ahora 271 00:11:29,110 --> 00:11:33,889 Recorremos este y decimos 272 00:11:33,889 --> 00:11:37,710 Venga, para cada entrada de este mapa mío 273 00:11:37,710 --> 00:11:45,620 Dentro de este de aquí 274 00:11:45,620 --> 00:11:49,080 Ahora ya haríamos 275 00:11:49,080 --> 00:11:50,460 Vamos a ver 276 00:11:50,460 --> 00:11:50,980 Sí 277 00:11:50,980 --> 00:11:54,259 Sí 278 00:11:54,259 --> 00:11:57,980 Entry.get 279 00:11:57,980 --> 00:12:00,559 key, entry.get 280 00:12:00,559 --> 00:12:02,379 key resulta que es 281 00:12:02,379 --> 00:12:04,179 igual al need 282 00:12:04,179 --> 00:12:06,120 que me han pedido 283 00:12:06,120 --> 00:12:07,080 de búsqueda 284 00:12:07,080 --> 00:12:10,440 pues entonces a esta misma 285 00:12:10,440 --> 00:12:12,639 entrada le vamos a poner 286 00:12:12,639 --> 00:12:16,480 hay que poner una persona con otro nombre 287 00:12:16,480 --> 00:12:17,779 entonces pues tendríamos que 288 00:12:17,779 --> 00:12:23,399 como la persona 289 00:12:23,399 --> 00:12:25,419 es un valor, vamos a construir 290 00:12:25,419 --> 00:12:26,100 una persona 291 00:12:26,100 --> 00:12:30,580 con ese nombre 292 00:12:30,580 --> 00:12:32,340 y se la 293 00:12:32,340 --> 00:12:34,100 y se la fijamos 294 00:12:34,100 --> 00:12:36,820 vale 295 00:12:36,820 --> 00:12:39,799 persona p 296 00:12:39,799 --> 00:12:42,200 igual a new persona 297 00:12:42,200 --> 00:12:45,620 p set nombre 298 00:12:45,620 --> 00:12:47,220 el que me han dado, nuevo nombre 299 00:12:47,220 --> 00:12:49,580 y p set edad 300 00:12:49,580 --> 00:12:50,840 el que tenía 301 00:12:50,840 --> 00:12:53,179 que el que tenía va a ser 302 00:12:53,179 --> 00:12:54,840 entry get value 303 00:12:54,840 --> 00:12:59,370 punto get edad 304 00:12:59,370 --> 00:13:00,610 solo le cambio el nombre 305 00:13:00,610 --> 00:13:02,289 vale, me he construido 306 00:13:02,289 --> 00:13:05,070 una persona 307 00:13:05,070 --> 00:13:06,690 persona, ¿qué pasa? 308 00:13:06,730 --> 00:13:08,210 que no tenía constructor sin parámetros 309 00:13:08,210 --> 00:13:12,919 bueno 310 00:13:12,919 --> 00:13:14,639 lo acabo de crear así que 311 00:13:14,639 --> 00:13:15,759 ahora ya lo tiene 312 00:13:15,759 --> 00:13:18,879 vale, pues entonces 313 00:13:18,879 --> 00:13:20,960 ¿qué me he hecho? me he construido una persona nueva 314 00:13:20,960 --> 00:13:23,059 con el nuevo nombre que me han dado 315 00:13:23,059 --> 00:13:25,019 y la edad he dejado la que tenía 316 00:13:25,019 --> 00:13:26,840 para eso he cogido la persona 317 00:13:26,840 --> 00:13:28,200 antigua que estaba en el value 318 00:13:28,200 --> 00:13:29,960 y he cogido su edad 319 00:13:29,960 --> 00:13:33,580 ¿vale? 320 00:13:34,240 --> 00:13:42,029 Y ahora ya voy a fijar aquí que el nuevo valor sea esta persona. 321 00:13:46,740 --> 00:13:51,759 Entonces, esto debería haber modificado el propio mapa al que está enganchado, 322 00:13:51,860 --> 00:13:52,299 que es este. 323 00:13:53,320 --> 00:13:53,639 Dime. 324 00:13:53,759 --> 00:13:55,600 ¿Y la otra persona no se está cambiando? 325 00:13:56,340 --> 00:13:57,320 ¿No se está eliminando? 326 00:13:57,480 --> 00:13:58,279 ¿O cuando se elimina? 327 00:13:58,600 --> 00:14:01,720 No, se le está cambiando el valor persona. 328 00:14:01,879 --> 00:14:03,179 O sea, la está sustituyendo por otra. 329 00:14:03,759 --> 00:14:07,820 O sea, esta entrada tiene una clave y ahora al fijarle tú el valor, 330 00:14:07,820 --> 00:14:09,960 el valor que tenía se queda sobre escrito 331 00:14:09,960 --> 00:14:11,940 se queda sobre escrito 332 00:14:11,940 --> 00:14:14,000 por eso he recuperado su edad 333 00:14:14,000 --> 00:14:16,200 para que el cambio sea solo en el nombre 334 00:14:16,200 --> 00:14:17,879 vale 335 00:14:17,879 --> 00:14:19,539 entonces este valor 336 00:14:19,539 --> 00:14:22,740 se va a tener que ver reflejado 337 00:14:22,740 --> 00:14:24,299 aquí en personas 338 00:14:24,299 --> 00:14:26,039 que a su vez es el que he pasado aquí 339 00:14:26,039 --> 00:14:28,399 vamos a 340 00:14:28,399 --> 00:14:29,500 comprobarlo 341 00:14:29,500 --> 00:14:31,379 vale pues tenemos cambiar nombre 342 00:14:31,379 --> 00:14:34,799 entonces me voy a hacer 343 00:14:34,799 --> 00:14:36,679 este me voy a llamar 344 00:14:36,679 --> 00:14:38,679 main2 para que la máquina virtual no lo 345 00:14:38,679 --> 00:14:40,740 arranque y voy a hacer un main 346 00:14:40,740 --> 00:14:42,740 normalito solo con esto 347 00:14:42,740 --> 00:14:54,879 solo con esto 348 00:14:54,879 --> 00:14:56,620 y me copio lo de 349 00:14:56,620 --> 00:14:57,320 las personas 350 00:14:57,320 --> 00:15:04,240 vale pues mi main ahora tiene solamente 351 00:15:04,240 --> 00:15:05,840 un map de personas 352 00:15:05,840 --> 00:15:06,580 con tres 353 00:15:06,580 --> 00:15:09,820 que me voy a crear aquí con estos 354 00:15:09,820 --> 00:15:12,100 y ahora 355 00:15:12,100 --> 00:15:13,980 vamos a cambiar el nombre 356 00:15:13,980 --> 00:15:17,850 esto 357 00:15:17,850 --> 00:15:19,429 se llamaba cambia nombre 358 00:15:19,429 --> 00:15:28,009 si a la persona 359 00:15:28,009 --> 00:15:28,929 con el nif 360 00:15:28,929 --> 00:15:34,009 1, 2, 3, 4, guión 0 361 00:15:34,009 --> 00:15:35,350 que esa sé que existe seguro 362 00:15:35,350 --> 00:15:37,429 porque existen la 0, la 1 y la 2 363 00:15:37,429 --> 00:15:40,230 le vamos a poner como nuevo nombre 364 00:15:40,230 --> 00:15:42,409 el que me den por aquí 365 00:15:42,409 --> 00:15:46,090 dentro de este map 366 00:15:46,090 --> 00:15:48,169 vale 367 00:15:48,169 --> 00:15:51,250 le vamos a poner 368 00:15:51,250 --> 00:15:55,419 nuevo nombre 369 00:15:55,419 --> 00:15:57,600 para esta 370 00:15:57,600 --> 00:16:01,740 nuevo nombre para esa 371 00:16:01,740 --> 00:16:03,720 le damos un nuevo nombre 372 00:16:03,720 --> 00:16:05,519 a la primera y ahora vamos a recorrer el map 373 00:16:05,519 --> 00:16:06,740 para asegurarnos de que 374 00:16:06,740 --> 00:16:08,500 realmente ha cambiado el nombre 375 00:16:08,500 --> 00:16:13,340 vale, vamos a hacer el recorrido antes y después 376 00:16:13,340 --> 00:16:15,039 y copiamos y pegamos 377 00:16:15,039 --> 00:16:21,340 efectivamente, porque map tiene un 378 00:16:21,340 --> 00:16:22,399 toString muy apañado 379 00:16:22,399 --> 00:16:24,779 que el array no tiene, por ejemplo 380 00:16:24,779 --> 00:16:27,700 el map tiene un toString 381 00:16:27,700 --> 00:16:28,480 muy apañado 382 00:16:28,480 --> 00:16:43,600 vale, pues vamos a ver 383 00:16:43,600 --> 00:16:45,100 A ver si después del cambio de nombre 384 00:16:45,100 --> 00:16:46,200 Realmente ha cambiado 385 00:16:46,200 --> 00:16:51,620 Venga, la primera persona 386 00:16:51,620 --> 00:16:54,299 Luis 387 00:16:54,299 --> 00:16:55,480 Edad 2 388 00:16:55,480 --> 00:16:58,179 La segunda persona 389 00:16:58,179 --> 00:17:00,879 Javi, edad 3 390 00:17:00,879 --> 00:17:03,700 La tercera persona 391 00:17:03,700 --> 00:17:05,440 Eva, edad 6 392 00:17:05,440 --> 00:17:06,640 Vale 393 00:17:06,640 --> 00:17:09,640 Claro, como no tengo en tu stream en persona 394 00:17:09,640 --> 00:17:12,759 Pues solo nos sirve para ver los nifs 395 00:17:12,759 --> 00:17:15,160 Y no para ver si me ha cambiado el nombre 396 00:17:15,160 --> 00:17:15,880 ¿No te dice el nombre? 397 00:17:15,880 --> 00:17:18,960 No, porque aquí me llama el toString de persona 398 00:17:18,960 --> 00:17:20,980 Y el toString de persona 399 00:17:20,980 --> 00:17:22,000 No lo tengo creado 400 00:17:22,000 --> 00:17:23,119 Claro, no lo tengo creado 401 00:17:23,119 --> 00:17:24,400 Entonces 402 00:17:24,400 --> 00:17:28,740 No lo vamos a ver 403 00:17:28,740 --> 00:17:29,799 Si lo ha cambiado o no lo ha cambiado 404 00:17:29,799 --> 00:17:30,839 Pero bueno, introduzca 405 00:17:30,839 --> 00:17:33,839 Vale, no sabemos si lo ha cambiado 406 00:17:33,839 --> 00:17:34,779 Habría que entrar aquí 407 00:17:34,779 --> 00:17:35,859 Entonces vamos a 408 00:17:35,859 --> 00:17:41,200 Claro, ha cambiado el hash 409 00:17:41,200 --> 00:17:42,500 Es que no me ha dado tiempo a verlo 410 00:17:42,500 --> 00:17:45,119 Vamos a ponerle un toString a persona 411 00:17:45,119 --> 00:17:59,059 Y ahora ya sí 412 00:17:59,059 --> 00:18:00,140 Dos 413 00:18:00,140 --> 00:18:03,519 Eva que tiene tres 414 00:18:03,519 --> 00:18:05,880 Y Juan que tiene cuatro 415 00:18:05,880 --> 00:18:07,099 Vale 416 00:18:07,099 --> 00:18:09,660 Al primero de todos que se llamaba 417 00:18:09,660 --> 00:18:10,539 Ana 418 00:18:10,539 --> 00:18:13,420 Le vamos a llamar ahora 419 00:18:13,420 --> 00:18:14,700 Javi 420 00:18:14,700 --> 00:18:17,039 Vale 421 00:18:17,039 --> 00:18:18,660 Entonces efectivamente 422 00:18:18,660 --> 00:18:21,500 Se llamaba Ana y ahora se llama Javi 423 00:18:21,500 --> 00:18:22,460 Vale 424 00:18:22,460 --> 00:18:24,720 Y hemos hecho lo que tienen 425 00:18:24,720 --> 00:18:32,819 ha cambiado y es lo que vale entonces eso nos lo ha permitido no ha permitido hacer pues este 426 00:18:32,819 --> 00:18:41,779 objeto entry que está conectado está conectado a ese mapa entonces nos permite recorrer el 427 00:18:41,779 --> 00:18:48,640 map para ver lo que tiene dentro cambiar las propiedades cambiar el propio objeto valor entero 428 00:18:48,640 --> 00:19:02,619 Bueno, pues estas son 429 00:19:02,619 --> 00:19:04,859 Todas las historietas 430 00:19:04,859 --> 00:19:06,019 Del map 431 00:19:06,019 --> 00:19:09,039 Y en general de las colecciones 432 00:19:09,039 --> 00:19:09,740 Así un poquito 433 00:19:09,740 --> 00:19:11,740 A ver, dudas, problemas 434 00:19:11,740 --> 00:19:14,460 ¿Tú tienes una duda o...? 435 00:19:14,460 --> 00:19:14,740 Dime 436 00:19:14,740 --> 00:19:21,420 bueno a ver 437 00:19:21,420 --> 00:19:22,960 es que estamos recorriendo 438 00:19:22,960 --> 00:19:25,519 o sea para recorrer un map 439 00:19:25,519 --> 00:19:26,799 lo necesitas sí o sí 440 00:19:26,799 --> 00:19:29,420 o sea el map no lo puedes recorrer con un 441 00:19:29,420 --> 00:19:30,799 for each como recorremos una colección 442 00:19:30,799 --> 00:19:33,599 tienes que recorrerlo o bien sacándote las claves 443 00:19:33,599 --> 00:19:34,680 con el keyset o con esto 444 00:19:34,680 --> 00:19:37,119 y esta la ventaja que tiene 445 00:19:37,119 --> 00:19:39,480 es que además tú puedes 446 00:19:39,480 --> 00:19:41,000 a través de él modificarlo 447 00:19:41,000 --> 00:19:43,359 pero efectivamente si tú quieres modificar 448 00:19:43,359 --> 00:19:45,640 el de NIF tal, pues haces 449 00:19:45,640 --> 00:19:47,180 put, ¿vale? 450 00:19:47,859 --> 00:19:50,099 Entonces, efectivamente, tienes toda la razón 451 00:19:50,099 --> 00:19:52,039 que aquí hemos hecho una tontería. 452 00:19:52,599 --> 00:19:54,059 O sea, hemos matado moscas a cañonazos. 453 00:19:54,160 --> 00:19:55,440 Tienes toda la razón. Aquí 454 00:19:55,440 --> 00:19:58,099 podríamos hacer directamente 455 00:19:58,099 --> 00:20:00,039 un 456 00:20:00,039 --> 00:20:02,059 segundinito. Podríamos hacer 457 00:20:02,059 --> 00:20:06,059 personas.put 458 00:20:06,059 --> 00:20:07,799 el NIF 459 00:20:07,799 --> 00:20:10,019 que me han dado y la persona 460 00:20:10,019 --> 00:20:10,579 P nueva. 461 00:20:10,579 --> 00:20:13,859 claro, hemos hecho una tontería 462 00:20:13,859 --> 00:20:15,759 y a la persona con este NIF 463 00:20:15,759 --> 00:20:17,099 le dará este nuevo valor 464 00:20:17,099 --> 00:20:19,799 ¿vale? luego hemos hecho aquí 465 00:20:19,799 --> 00:20:20,940 un rollo muy largo 466 00:20:20,940 --> 00:20:22,440 ¿no se supone que se 467 00:20:22,440 --> 00:20:24,599 sobreescribe? 468 00:20:26,279 --> 00:20:27,440 claro, es que es lo que queremos 469 00:20:27,440 --> 00:20:31,740 pues para 470 00:20:31,740 --> 00:20:33,480 a ver, lo hicimos 471 00:20:33,480 --> 00:20:35,619 para verificar y confirmar 472 00:20:35,619 --> 00:20:37,460 primero para aprender a recorrer 473 00:20:37,460 --> 00:20:39,599 porque aquí hemos recorrido solamente para encontrar 474 00:20:39,599 --> 00:20:41,319 el del NIF, pero es una tontería, por eso luego 475 00:20:41,319 --> 00:20:43,619 encontramos o con GET o luego aquí con PUT. 476 00:20:44,319 --> 00:20:44,579 Pero, 477 00:20:44,980 --> 00:20:47,720 para ver que si yo tengo que recorrer 478 00:20:47,720 --> 00:20:49,740 para consultar, para lo que sea, 479 00:20:50,859 --> 00:20:51,400 pues tú puedes 480 00:20:51,400 --> 00:20:53,900 recorrer a través de este conjunto de entries. 481 00:20:54,420 --> 00:20:55,819 Y luego, para ver que a través 482 00:20:55,819 --> 00:20:57,640 de este entry, tú puedes 483 00:20:57,640 --> 00:20:59,519 modificar el valor. Si estás dentro 484 00:20:59,519 --> 00:21:01,279 de un recorrido, ¿vale? 485 00:21:01,579 --> 00:21:03,859 Pero, efectivamente, las funcionalidades 486 00:21:03,859 --> 00:21:04,839 que tiran de clave, 487 00:21:05,660 --> 00:21:07,819 es que ahí no hay que recorrer, porque la que tiran 488 00:21:07,819 --> 00:21:09,920 de clave, pues tú ya con put 489 00:21:09,920 --> 00:21:12,079 sobrescribes, con get la recuperas 490 00:21:12,079 --> 00:21:13,400 las propiedades que tiran de clave 491 00:21:13,400 --> 00:21:15,259 las que tiran de otras propiedades no 492 00:21:15,259 --> 00:21:17,299 entonces este ejemplo que hemos puesto 493 00:21:17,299 --> 00:21:19,380 cambiar nombre al de nif tal 494 00:21:19,380 --> 00:21:21,299 es un poco tonto, pero si hubiéramos 495 00:21:21,299 --> 00:21:23,500 que no nos hubiera hecho falta 496 00:21:23,500 --> 00:21:24,680 vamos a 497 00:21:24,680 --> 00:21:27,759 pero si hubiéramos hecho otro, que lo vamos a hacer ahora 498 00:21:27,759 --> 00:21:29,859 de una forma más fácil 499 00:21:29,859 --> 00:21:31,839 pues de una forma más fácil 500 00:21:31,839 --> 00:21:33,759 habría sido esta misma 501 00:21:33,759 --> 00:21:35,319 persona de aquí 502 00:21:35,319 --> 00:21:38,380 nos hacemos 503 00:21:38,380 --> 00:21:40,460 una nueva persona 504 00:21:40,460 --> 00:21:45,279 ah no, porque tengo que localizar 505 00:21:45,279 --> 00:21:46,960 igualmente la edad que tiene 506 00:21:46,960 --> 00:21:48,740 no, no, no, no lo podríamos haber hecho de forma más fácil 507 00:21:48,740 --> 00:21:50,539 porque la edad de la persona 508 00:21:50,539 --> 00:21:52,740 ah no, no, que tontería, claro, que sí, que se me está viendo la pinza 509 00:21:52,740 --> 00:21:54,400 vale, podríamos 510 00:21:54,400 --> 00:21:57,059 recuperar la persona 511 00:21:57,059 --> 00:21:58,759 p 512 00:21:58,759 --> 00:22:00,440 p1 513 00:22:00,440 --> 00:22:01,259 porque ya tengo una p 514 00:22:01,259 --> 00:22:04,759 la persona p1 sería en personas 515 00:22:04,759 --> 00:22:07,420 la recupero con el 516 00:22:07,420 --> 00:22:08,160 nif que me han dado. 517 00:22:09,519 --> 00:22:11,259 Vale. Ahora 518 00:22:11,259 --> 00:22:12,579 a esta persona le cambio el nombre. 519 00:22:13,220 --> 00:22:15,359 P1.setNombre 520 00:22:15,359 --> 00:22:16,420 y le pongo el nuevo nombre. 521 00:22:17,420 --> 00:22:20,079 Y ahora me hago personas.put 522 00:22:20,079 --> 00:22:21,539 nif 523 00:22:21,539 --> 00:22:24,880 y la persona 1 524 00:22:24,880 --> 00:22:26,180 y ya está. 525 00:22:27,119 --> 00:22:28,160 Es lo nuestro de arriba. 526 00:22:29,380 --> 00:22:31,180 Me cojo la persona que tiene ese nif. 527 00:22:31,700 --> 00:22:33,380 Le cambio a esa persona el nombre 528 00:22:33,380 --> 00:22:35,440 y la vuelvo a meter en el map 529 00:22:35,440 --> 00:22:37,579 bajo esa clave, con lo cual 530 00:22:37,579 --> 00:22:39,700 estaré sobrescribiendo la que estaba 531 00:22:39,700 --> 00:22:41,839 antes. La edad es la misma 532 00:22:41,839 --> 00:22:43,599 porque en P1 solo he retocado 533 00:22:43,599 --> 00:22:44,420 el nombre, ¿vale? 534 00:22:45,279 --> 00:22:45,559 Dime. 535 00:22:49,559 --> 00:22:55,519 Porque tengo que modificar la que había. 536 00:22:55,519 --> 00:22:57,319 La que había ya no me vale. 537 00:22:57,440 --> 00:22:58,660 Tengo que hacer una con otro nombre. 538 00:22:59,519 --> 00:22:59,920 ¿Vale? 539 00:22:59,920 --> 00:23:09,480 Claro, para mantener la edad de la persona que estaba 540 00:23:09,480 --> 00:23:09,980 ¿Vale? 541 00:23:16,259 --> 00:23:17,299 Sí, de hecho 542 00:23:17,299 --> 00:23:19,839 Más fácil todavía 543 00:23:19,839 --> 00:23:24,299 No, guapo, no 544 00:23:28,640 --> 00:23:29,900 Más fácil todavía 545 00:23:29,900 --> 00:23:42,319 personas.getnif.setNombreNuevoNombre. 546 00:23:42,779 --> 00:23:43,480 Ya está. 547 00:23:43,779 --> 00:23:44,440 Una sola línea. 548 00:23:45,779 --> 00:23:46,220 Claro. 549 00:23:46,980 --> 00:23:47,940 Una sola línea. 550 00:23:48,460 --> 00:23:51,400 A la persona con este nif, esto es la dirección de esa persona. 551 00:23:51,500 --> 00:23:52,180 Es una referencia. 552 00:23:52,799 --> 00:23:53,980 Pues a esa le cambio el nombre. 553 00:23:54,940 --> 00:23:56,920 Pues se la estaré cambiando a esa misma persona. 554 00:24:02,490 --> 00:24:11,589 Vale, vamos a hacer otro método 555 00:24:11,589 --> 00:24:13,529 Que ahora ya sí que vamos a tener que usar el 556 00:24:13,529 --> 00:24:15,769 Que este método es para 557 00:24:15,769 --> 00:24:16,990 Explicarte eso 558 00:24:16,990 --> 00:24:21,170 No, no basta 559 00:24:21,170 --> 00:24:21,450 No 560 00:24:21,450 --> 00:24:27,369 Vamos a hacer otro método 561 00:24:27,369 --> 00:24:29,289 En el que vamos a tener que usar el map 562 00:24:29,289 --> 00:24:30,890 En el entry set sí o sí 563 00:24:30,890 --> 00:24:32,809 porque aquí realmente 564 00:24:32,809 --> 00:24:35,410 cállate 565 00:24:35,410 --> 00:24:37,690 hombre, pesado, que eres muy pesado 566 00:24:37,690 --> 00:24:39,150 relájate un poco, respira 567 00:24:39,150 --> 00:24:45,829 que no, que luego el pasillo 568 00:24:45,829 --> 00:24:47,950 sufre, le oiríamos igual 569 00:24:47,950 --> 00:24:53,950 venga, silencio 570 00:24:53,950 --> 00:24:55,109 vale 571 00:24:58,710 --> 00:24:59,670 venga, vale 572 00:24:59,670 --> 00:25:02,410 vale, pues a ver 573 00:25:02,410 --> 00:25:03,690 aquí hemos recorrido 574 00:25:03,690 --> 00:25:05,710 repito, en este método 575 00:25:05,710 --> 00:25:08,289 hemos recorrido para localizar 576 00:25:08,289 --> 00:25:10,170 por clave, pero realmente es estúpido 577 00:25:10,170 --> 00:25:12,230 porque para localizar por clave es que ya tengo 578 00:25:12,230 --> 00:25:14,130 el get, localizo por clave, vale, pues vamos a hacer 579 00:25:14,130 --> 00:25:15,750 un método en el que ahora 580 00:25:15,750 --> 00:25:18,670 yo quiero cambiar la edad 581 00:25:18,670 --> 00:25:20,210 de todos los que se llamen 582 00:25:20,210 --> 00:25:22,269 Pepito, ahí no puedo hacer 583 00:25:22,269 --> 00:25:24,250 un get por Pepito, porque Pepito no es la 584 00:25:24,250 --> 00:25:26,049 clave, entonces ahí sí que tenemos que recorrer 585 00:25:26,049 --> 00:25:27,710 sí o sí, vale 586 00:25:27,710 --> 00:25:29,910 entonces voy a ponerlo aquí 587 00:25:29,910 --> 00:25:31,650 ahora cuando lo subamos 588 00:25:31,650 --> 00:25:33,990 no habría hecho 589 00:25:33,990 --> 00:25:36,609 falta recorrer 590 00:25:36,609 --> 00:25:38,890 ¿puedes cambiar la clave con un getNipSet? 591 00:25:41,930 --> 00:25:44,869 no, la clave no deberías cambiarla 592 00:25:44,869 --> 00:25:48,390 lo que puedes es eliminar un elemento 593 00:25:48,390 --> 00:25:50,009 con esa clave, haces un remove 594 00:25:50,009 --> 00:25:51,990 lo eliminas y la clave también desaparece 595 00:25:51,990 --> 00:25:52,930 se aparece el par completo 596 00:25:52,930 --> 00:25:54,309 y luego ya te metes otra 597 00:25:54,309 --> 00:26:00,349 Claro, pero hay que recorrer. 598 00:26:00,509 --> 00:26:02,210 Es lo que estoy diciendo, que ahí sí que hay que recorrer. 599 00:26:02,670 --> 00:26:04,670 Aquí hemos podido hacerlo sin recorridos. 600 00:26:04,769 --> 00:26:05,930 Bien así o todavía más fácil. 601 00:26:06,369 --> 00:26:08,990 Pero este otro método que voy a poner, no puedes evitar recorrer. 602 00:26:09,309 --> 00:26:11,170 Va a tener que recorrer, porque tienes que localizar por nombre. 603 00:26:11,869 --> 00:26:13,509 En este localizar por NIT tienes el GET. 604 00:26:14,450 --> 00:26:22,880 Vale, pues vamos a hacer un método ahora que cumple años. 605 00:26:23,259 --> 00:26:23,519 Venga. 606 00:26:26,390 --> 00:26:27,549 ¿Quién cumple años? 607 00:26:27,549 --> 00:26:29,289 pues cumpleaños 608 00:26:29,289 --> 00:26:30,490 quien se llame así 609 00:26:30,490 --> 00:26:32,670 que pueden ser muchos 610 00:26:32,670 --> 00:26:33,690 los que cumplen años 611 00:26:33,690 --> 00:26:35,390 todos los que se llaman así cumplen años 612 00:26:35,390 --> 00:26:38,789 y en qué fecha 613 00:26:38,789 --> 00:26:39,369 pues mira 614 00:26:39,369 --> 00:26:41,589 qué buena idea para el examen 615 00:26:41,589 --> 00:26:44,490 que no 616 00:26:44,490 --> 00:26:45,289 que no 617 00:26:45,289 --> 00:26:48,069 que no 618 00:26:48,069 --> 00:26:49,069 tranquilos 619 00:26:49,069 --> 00:26:52,369 que rencorosos 620 00:26:52,369 --> 00:27:00,829 Sí, porque ninguno lo habéis descargado 621 00:27:00,829 --> 00:27:01,349 Eso seguro 622 00:27:01,349 --> 00:27:04,390 Vale, pues a ver 623 00:27:04,390 --> 00:27:06,289 Vamos a ver cumpleaños 624 00:27:06,289 --> 00:27:08,009 ¿Qué indica cumplir años? 625 00:27:08,569 --> 00:27:10,009 Que hay que sumarle uno 626 00:27:10,009 --> 00:27:11,849 A todos los que se llamen así 627 00:27:11,849 --> 00:27:13,930 Entonces, yo aquí no puedo hacer 628 00:27:13,930 --> 00:27:15,390 Personas 629 00:27:15,390 --> 00:27:16,910 Y sácame 630 00:27:16,910 --> 00:27:19,150 Todos los que se llamen así 631 00:27:19,150 --> 00:27:21,089 No, yo aquí solamente puedo 632 00:27:21,089 --> 00:27:22,609 sacar por clave 633 00:27:22,609 --> 00:27:25,329 solamente puedo sacar por clave, la clave es el 634 00:27:25,329 --> 00:27:27,309 con lo cual no puedo sacar todos los que se 635 00:27:27,309 --> 00:27:28,829 llamen Pepito, no puedo 636 00:27:28,829 --> 00:27:31,410 con lo cual, si el parámetro 637 00:27:31,410 --> 00:27:33,069 de búsqueda no es la clave 638 00:27:33,069 --> 00:27:35,369 tengo que recorrer el 639 00:27:35,369 --> 00:27:37,250 map sí o sí, ahora aquí ya sé que no me queda 640 00:27:37,250 --> 00:27:39,009 más remedio, vale 641 00:27:39,009 --> 00:27:41,170 efectivamente, pues lo vamos a escribir 642 00:27:41,170 --> 00:27:42,890 enterito para que se nos vaya quedando 643 00:27:42,890 --> 00:27:44,490 pues me saco un set 644 00:27:44,490 --> 00:27:46,750 de entry 645 00:27:46,750 --> 00:27:52,160 persona 646 00:27:52,160 --> 00:27:54,859 y ahora aquí tengo yo 647 00:27:54,859 --> 00:27:57,119 pues mis personas 648 00:27:57,119 --> 00:27:58,480 pero ahora ya en entry 649 00:27:58,480 --> 00:28:01,660 y esto lo he sacado 650 00:28:01,660 --> 00:28:02,900 de personas 651 00:28:02,900 --> 00:28:07,490 punto entry set 652 00:28:07,490 --> 00:28:09,690 ahora 653 00:28:09,690 --> 00:28:11,269 como esto ya es un set 654 00:28:11,269 --> 00:28:12,049 lo recorremos 655 00:28:12,049 --> 00:28:15,109 pues para cada entry 656 00:28:15,109 --> 00:28:20,440 llamémosle 657 00:28:20,440 --> 00:28:23,160 de todos 658 00:28:23,160 --> 00:28:24,000 mis entries 659 00:28:24,000 --> 00:28:26,140 que son todos estos 660 00:28:26,140 --> 00:28:32,450 ¿Qué vamos a hacer? 661 00:28:32,769 --> 00:28:34,849 ¿Esta persona es la que toca cambiar la edad? 662 00:28:35,269 --> 00:28:35,930 Vamos a ver 663 00:28:35,930 --> 00:28:40,210 Si e.getValue 664 00:28:40,210 --> 00:28:42,390 Que es la persona enterita 665 00:28:42,390 --> 00:28:44,269 Muy bien 666 00:28:44,269 --> 00:28:45,589 .getNombre 667 00:28:45,589 --> 00:28:46,670 Equals 668 00:28:46,670 --> 00:28:48,690 El que le toca cumplir añitos 669 00:28:48,690 --> 00:28:52,069 Pues entonces 670 00:28:52,069 --> 00:28:56,490 e.getValue 671 00:28:56,490 --> 00:28:58,349 .set 672 00:28:58,349 --> 00:29:00,549 Edad 673 00:29:00,549 --> 00:29:03,130 Igual a la que tenía de antes 674 00:29:03,130 --> 00:29:03,589 Más uno 675 00:29:03,589 --> 00:29:09,009 E.getValue.getEdad 676 00:29:09,009 --> 00:29:10,210 Más uno 677 00:29:10,210 --> 00:29:11,849 A la 678 00:29:11,849 --> 00:29:13,329 Más más 679 00:29:13,329 --> 00:29:18,920 No, porque esto es una 680 00:29:18,920 --> 00:29:21,279 Aquí tengo que pasarle un valor 681 00:29:21,279 --> 00:29:22,839 Y más más es una sentencia 682 00:29:22,839 --> 00:29:24,099 Bueno, aunque 683 00:29:24,099 --> 00:29:25,299 No te devuelve 684 00:29:25,299 --> 00:29:28,819 No, más uno 685 00:29:28,819 --> 00:29:29,420 Vale 686 00:29:29,420 --> 00:29:32,799 Vale, pues ya está 687 00:29:32,799 --> 00:29:34,960 aquí hemos tenido que recorrer, porque aquí hay varios 688 00:29:34,960 --> 00:29:36,759 y me irán 689 00:29:36,759 --> 00:29:38,640 apareciendo por el recorrido, hay varios 690 00:29:38,640 --> 00:29:40,319 que se llaman así, pues los tengo que ir sacando 691 00:29:40,319 --> 00:29:42,299 y para irlos sacando tengo que recorrer 692 00:29:42,299 --> 00:29:43,500 ahí sí que no tengo alternativa 693 00:29:43,500 --> 00:29:46,759 si me dijeran cumpleaños el de Niftal 694 00:29:46,759 --> 00:29:48,759 facilísimo, le saco con get 695 00:29:48,759 --> 00:29:51,019 y le seteo su valor 696 00:29:51,019 --> 00:29:54,920 bueno, pues 697 00:29:54,920 --> 00:29:56,880 la persona cuyo nombre sea igual 698 00:29:56,880 --> 00:29:58,720 a este, pues su nueva edad 699 00:29:58,720 --> 00:30:00,480 la que tenía más uno 700 00:30:00,480 --> 00:30:08,289 ¿hemos entendido algo más? 701 00:30:09,230 --> 00:30:09,430 bueno 702 00:30:09,430 --> 00:30:15,849 ¿Qué no entendéis a nivel completo del map? 703 00:30:15,910 --> 00:30:17,650 No vale que me digáis, no entiendo nada del map 704 00:30:17,650 --> 00:30:19,670 Algo concreto 705 00:30:19,670 --> 00:30:20,930 El entry, exactamente 706 00:30:20,930 --> 00:30:21,769 ¿Qué te parece? 707 00:30:22,250 --> 00:30:25,769 Un conjunto de objetos que quieras 708 00:30:25,769 --> 00:30:26,910 Y que la clave 709 00:30:26,910 --> 00:30:29,089 Entonces, te lo guardan en un conjunto 710 00:30:29,089 --> 00:30:30,309 Y tú te cortas el conjunto 711 00:30:30,309 --> 00:30:33,210 Y ahí tienes la clave del objeto en el mismo 712 00:30:33,210 --> 00:30:35,630 ¿Te has enterado? 713 00:30:36,890 --> 00:30:37,230 Oye, este 714 00:30:37,230 --> 00:30:38,430 Dime 715 00:30:38,430 --> 00:30:44,829 No vayas a lo fácil 716 00:30:44,829 --> 00:30:49,509 No, no lo concateno 717 00:30:49,509 --> 00:30:51,009 Esta es la persona 718 00:30:51,009 --> 00:30:52,730 En la que estoy parada 719 00:30:52,730 --> 00:30:55,009 Entonces, de la persona que estoy parada 720 00:30:55,009 --> 00:30:56,549 A ver, igual te es más fácil 721 00:30:56,549 --> 00:30:57,730 Si nos lo planteáramos así 722 00:30:57,730 --> 00:30:58,609 Hacemos 723 00:30:58,609 --> 00:31:00,269 Persona P 724 00:31:00,269 --> 00:31:04,410 Claro 725 00:31:04,410 --> 00:31:07,650 Así se ve más claro 726 00:31:07,650 --> 00:31:08,369 De todas maneras 727 00:31:08,369 --> 00:31:11,390 así se ve más clarito 728 00:31:11,390 --> 00:31:14,630 y queda más corto 729 00:31:14,630 --> 00:31:16,329 vale 730 00:31:16,329 --> 00:31:17,910 así es más fácil 731 00:31:17,910 --> 00:31:20,369 a veces entenderlo y que uno no se líe 732 00:31:20,369 --> 00:31:22,349 así es más fácil para recorrer 733 00:31:22,349 --> 00:31:24,690 yo estoy recorriendo estos objetos 734 00:31:24,690 --> 00:31:26,269 que tienen dentro, la clave y el valor 735 00:31:26,269 --> 00:31:27,970 me quedo con el valor 736 00:31:27,970 --> 00:31:30,170 que lo guardo aquí, me quedo con el valor 737 00:31:30,170 --> 00:31:31,910 y ya está, ya ha ido el valor 738 00:31:31,910 --> 00:31:34,049 oye, estoy parada en esta persona 739 00:31:34,049 --> 00:31:36,410 o sea, esta persona P va tomando todas las personas 740 00:31:36,410 --> 00:31:37,750 de mi mapa, han tomado todos 741 00:31:37,750 --> 00:31:40,150 Esta persona P, su nombre es esta 742 00:31:40,150 --> 00:31:43,029 Pues su edad, que sea la edad que tenía de antes 743 00:31:43,029 --> 00:31:43,470 Más una 744 00:31:43,470 --> 00:31:47,210 Ya está, es más fácil quizá que ir arrastrando esto todo el rato 745 00:31:47,210 --> 00:31:49,009 ¿Vale? 746 00:31:49,750 --> 00:31:50,910 Más cosas concretas 747 00:31:50,910 --> 00:31:51,710 Que no entendáis 748 00:31:51,710 --> 00:31:55,990 ¿Entendéis todo? 749 00:31:58,329 --> 00:31:59,349 No, dila, dila 750 00:31:59,349 --> 00:32:04,190 Porque os quiero demasiado 751 00:32:04,190 --> 00:32:05,329 Y quiero que seáis los mejores 752 00:32:05,329 --> 00:32:06,089 Dime 753 00:32:06,089 --> 00:32:11,769 el iterator 754 00:32:11,769 --> 00:32:17,910 claro que sí 755 00:32:17,910 --> 00:32:18,750 pues a ver 756 00:32:18,750 --> 00:32:20,549 el iterator estaba 757 00:32:20,549 --> 00:32:22,529 en este main 758 00:32:22,529 --> 00:32:25,329 en este método 759 00:32:25,329 --> 00:32:31,710 igual es una respuesta mejor 760 00:32:31,710 --> 00:32:33,630 vale, a ver 761 00:32:33,630 --> 00:32:35,990 el iterator lo hemos usado 762 00:32:35,990 --> 00:32:37,849 aquí para recorrer 763 00:32:37,849 --> 00:32:39,609 la colección esta a GetDiscos, ¿vale? 764 00:32:40,130 --> 00:32:41,710 GetDiscos es una colección. Vamos a hacerlo 765 00:32:41,710 --> 00:32:42,670 en un ejemplo aparte. 766 00:32:43,589 --> 00:32:44,329 Por ejemplo, 767 00:32:45,529 --> 00:32:45,809 pues, 768 00:32:47,750 --> 00:32:50,390 en este mismo ejercicio, 769 00:32:51,089 --> 00:32:52,049 venga, no, no, vamos a hacer 770 00:32:52,049 --> 00:32:53,369 un paquete, ejemplo iterador. 771 00:32:53,750 --> 00:32:53,890 Vale. 772 00:32:57,269 --> 00:32:57,670 Ejemplo, 773 00:32:58,150 --> 00:32:59,130 sí, este proyecto 774 00:32:59,130 --> 00:33:01,470 lo subo entero, claro, con los servicios que tenemos. 775 00:33:02,029 --> 00:33:03,849 Vale, pues venga, vamos a hacernos 776 00:33:03,849 --> 00:33:05,730 aquí la misma clase persona para iterar 777 00:33:05,730 --> 00:33:07,710 en personas, esta misma 778 00:33:07,710 --> 00:33:08,910 clase la copio 779 00:33:08,910 --> 00:33:10,349 y la pego aquí 780 00:33:10,349 --> 00:33:13,349 vale, tenemos aquí 781 00:33:13,349 --> 00:33:15,170 personas 782 00:33:15,170 --> 00:33:17,309 vale, ahora vamos a hacernos un main 783 00:33:17,309 --> 00:33:20,049 aquí dentro de ejemplo iterador 784 00:33:20,049 --> 00:33:23,109 vamos a hacernos 785 00:33:23,109 --> 00:33:27,180 un main y ahora 786 00:33:27,180 --> 00:33:31,259 vamos a trabajar con un conjunto 787 00:33:31,259 --> 00:33:32,039 de personas 788 00:33:32,039 --> 00:33:34,720 pues venga 789 00:33:34,720 --> 00:33:36,720 set persona 790 00:33:39,119 --> 00:33:42,400 y vamos a hacer que sea un triset 791 00:33:42,400 --> 00:33:45,599 pues porque nos da 792 00:33:45,599 --> 00:33:47,259 lo mismo la que sea, pues para variar 793 00:33:47,259 --> 00:33:49,559 no, porque 794 00:33:49,559 --> 00:33:51,619 como siempre se os hace raro, pues para que no 795 00:33:51,619 --> 00:33:52,259 se os haga raro 796 00:33:52,259 --> 00:33:55,420 venga 797 00:33:55,420 --> 00:33:57,420 vale 798 00:33:57,420 --> 00:33:59,640 pues ya está, tengo mi set de personas 799 00:33:59,640 --> 00:34:01,859 vale, entonces automáticamente 800 00:34:01,859 --> 00:34:03,079 como es un triset 801 00:34:03,079 --> 00:34:05,400 cuidado, se me enciende la alarma de que 802 00:34:05,400 --> 00:34:07,480 la clase persona tiene que tener un 803 00:34:07,480 --> 00:34:09,280 método para compararse 804 00:34:09,280 --> 00:34:11,320 entre sí, un método de orden 805 00:34:11,320 --> 00:34:13,280 vale, pues entonces ya 806 00:34:13,280 --> 00:34:15,000 me adelanto y pongo en mi clase 807 00:34:15,000 --> 00:34:17,280 persona, que era esta 808 00:34:17,280 --> 00:34:18,619 esta de aquí 809 00:34:18,619 --> 00:34:21,280 pongo que implemente 810 00:34:22,360 --> 00:34:24,500 comparable 811 00:34:24,500 --> 00:34:26,300 de persona 812 00:34:26,300 --> 00:34:29,760 al implementar comparable de persona 813 00:34:29,760 --> 00:34:31,280 tiene que implementar 814 00:34:31,900 --> 00:34:34,539 este compare tú 815 00:34:34,539 --> 00:34:37,460 ¿cómo los ordenamos? ¿por orden alfabético o de menor a mayor? 816 00:34:39,280 --> 00:34:41,420 orden alfabético 817 00:34:41,420 --> 00:34:43,340 pues venga, para ordenar por orden alfabético 818 00:34:43,340 --> 00:34:45,539 retun nombre 819 00:34:45,539 --> 00:34:47,840 punto compare tu 820 00:34:47,840 --> 00:34:49,539 o punto nombre 821 00:34:49,539 --> 00:34:51,019 ya está 822 00:34:51,019 --> 00:34:53,239 ya está ordenado por orden alfabético de nombre 823 00:34:53,239 --> 00:34:56,780 si fuera pues retun 824 00:34:56,780 --> 00:34:59,519 edad menos o punto edad 825 00:34:59,519 --> 00:35:03,280 como todo el rato 826 00:35:03,280 --> 00:35:08,820 a ver, todo depende de tu aplicación 827 00:35:08,820 --> 00:35:10,619 Para que la uses, para que te sirva 828 00:35:10,619 --> 00:35:15,300 Claro, y con los números también 829 00:35:15,300 --> 00:35:17,139 Lo tienes fácil, pero si quieres ordenar 830 00:35:17,139 --> 00:35:18,539 Con otro parámetro extraño 831 00:35:18,539 --> 00:35:19,719 Tienes que construir 832 00:35:19,719 --> 00:35:21,219 Vale, pues ya está 833 00:35:21,219 --> 00:35:24,219 Tenemos aquí nuestro main con personas 834 00:35:24,219 --> 00:35:26,380 Y ahora ya no nos va a dar ningún problema 835 00:35:26,380 --> 00:35:27,880 Porque las personas son ordenables 836 00:35:27,880 --> 00:35:28,900 Luego el triset las puede ordenar 837 00:35:28,900 --> 00:35:30,360 Y a partir de aquí ya 838 00:35:30,360 --> 00:35:32,880 Nos da igual que sea un triset, que un haset 839 00:35:32,880 --> 00:35:34,019 Nos da igual, todo funciona igual 840 00:35:34,019 --> 00:35:36,659 Pues venga, vamos a meterle varias personas 841 00:35:36,659 --> 00:35:39,320 Vamos a reutilizar este for en el que metíamos personas. 842 00:35:39,460 --> 00:35:40,500 Ah, no, que eso estaba en un modo. 843 00:35:42,199 --> 00:35:43,659 Sí, vamos a meter tres personas. 844 00:35:44,280 --> 00:35:49,260 Voy a reutilizar este for, cambiando el put por el add. 845 00:35:51,139 --> 00:35:53,679 Vamos a meter tres personas. 846 00:35:55,539 --> 00:35:59,860 Add new persona. 847 00:36:00,659 --> 00:36:01,619 Venga, con nombre y edad. 848 00:36:02,400 --> 00:36:03,139 Vale, pues ya está. 849 00:36:03,239 --> 00:36:04,940 Tengo un set con tres personas. 850 00:36:04,940 --> 00:36:07,880 con nombre y edad las que me den por teclado 851 00:36:07,880 --> 00:36:09,579 y ahora 852 00:36:09,579 --> 00:36:12,239 vamos a recorrer esta colección 853 00:36:12,239 --> 00:36:14,059 de personas, con el for each está claro 854 00:36:14,059 --> 00:36:16,139 facilísimo, pero para variar 855 00:36:16,139 --> 00:36:17,599 vamos a recorrerla con un iterador 856 00:36:17,599 --> 00:36:19,480 un iterador es un objeto aparte 857 00:36:19,480 --> 00:36:22,079 que se convierte en una especie de puntero 858 00:36:22,079 --> 00:36:23,199 señalador de los otros 859 00:36:23,199 --> 00:36:26,079 y yo le puedo coger para a través de él ir cogiendo 860 00:36:26,079 --> 00:36:27,679 tú este, este, este, este 861 00:36:27,679 --> 00:36:30,099 pues venga, el iterador es un objeto aparte 862 00:36:30,099 --> 00:36:30,840 de esta clase 863 00:36:30,840 --> 00:36:33,400 que yo le digo, oye tú iterador 864 00:36:33,400 --> 00:36:36,139 ¿qué tipo de objeto vas a apuntar? 865 00:36:36,199 --> 00:36:38,320 voy a apuntar personas porque voy a ser un iterador 866 00:36:38,320 --> 00:36:39,579 de esta colección personas 867 00:36:39,579 --> 00:36:42,539 vale, pues llámale al iterador 868 00:36:42,539 --> 00:36:43,480 como te dé la gana 869 00:36:43,480 --> 00:36:46,099 y ahora vamos a instanciar 870 00:36:46,099 --> 00:36:47,980 un operador que apunte aquí 871 00:36:47,980 --> 00:36:50,619 porque cada iterador 872 00:36:50,619 --> 00:36:52,280 apunta a una colección 873 00:36:52,280 --> 00:36:54,460 un iterador apunta 874 00:36:54,460 --> 00:36:55,760 a una colección concreta 875 00:36:55,760 --> 00:36:58,639 puedo tener muchos iteradores, cada uno apuntando 876 00:36:58,639 --> 00:36:59,679 a una colección distinta 877 00:36:59,679 --> 00:37:01,780 ¿a qué colección queremos que apunte? 878 00:37:01,900 --> 00:37:02,940 a personas 879 00:37:02,940 --> 00:37:06,360 pues lo extraigo entonces con este método 880 00:37:06,360 --> 00:37:09,920 bueno pues ya he construido 881 00:37:09,920 --> 00:37:12,440 un objeto iterador 882 00:37:12,440 --> 00:37:13,960 que importo dejaba útil 883 00:37:13,960 --> 00:37:22,119 si si si para cualquier colección 884 00:37:22,119 --> 00:37:23,840 sento iterator 885 00:37:23,840 --> 00:37:24,920 ah es que he puesto iterador 886 00:37:24,920 --> 00:37:25,440 vale vale 887 00:37:25,440 --> 00:37:34,119 vale pues este objeto que he creado aquí 888 00:37:34,119 --> 00:37:36,239 me vale para recorrer la colección. 889 00:37:37,599 --> 00:37:38,440 Bueno, pues 890 00:37:38,440 --> 00:37:40,440 ¿cómo recorremos la conexión? Pues con un while. 891 00:37:41,500 --> 00:37:41,980 Y ahora, 892 00:37:42,519 --> 00:37:43,199 iterador. 893 00:37:44,920 --> 00:37:46,300 ¿Tienes todavía un siguiente 894 00:37:46,300 --> 00:37:48,639 al que apuntar? Porque el iterador 895 00:37:48,639 --> 00:37:50,199 inicialmente se queda apuntando 896 00:37:50,199 --> 00:37:52,619 antes que el primero 897 00:37:52,619 --> 00:37:53,480 de cualquiera de ellos. 898 00:37:54,280 --> 00:37:56,619 El iterador es como si los pusiera en fila, aunque sea un conjunto. 899 00:37:56,619 --> 00:37:58,000 Da igual, los pone en fila. 900 00:37:58,320 --> 00:37:59,519 Esa fila es al azar. 901 00:38:00,900 --> 00:38:02,880 Bueno, no es al azar, pero como si lo fuera para nosotros. 902 00:38:02,880 --> 00:38:04,559 es como si los pusiera en fila 903 00:38:04,559 --> 00:38:06,659 y el iterador se queda apuntando antes del primero 904 00:38:06,659 --> 00:38:08,820 y el hashness me dice 905 00:38:08,820 --> 00:38:09,639 si tiene uno 906 00:38:09,639 --> 00:38:12,199 por delante todavía el que apuntar 907 00:38:12,199 --> 00:38:14,239 si, tienes uno por delante 908 00:38:14,239 --> 00:38:16,599 vale, pues venga, voy a apuntar a él 909 00:38:16,599 --> 00:38:19,039 ¿cómo avanzamos el iterador para que vaya apuntando? 910 00:38:19,460 --> 00:38:20,800 pues con ese 911 00:38:20,800 --> 00:38:22,159 it.next 912 00:38:22,159 --> 00:38:24,599 me devuelve el objeto persona 913 00:38:24,599 --> 00:38:26,760 y yo pues lo guardo por ejemplo 914 00:38:26,760 --> 00:38:27,119 aquí 915 00:38:27,119 --> 00:38:30,420 vale, entonces 916 00:38:30,420 --> 00:38:33,239 cada iteración de este bucle 917 00:38:33,239 --> 00:38:35,440 P se va quedando 918 00:38:35,440 --> 00:38:36,500 con una persona distinta 919 00:38:36,500 --> 00:38:38,880 entonces este bucle es idéntico 920 00:38:38,880 --> 00:38:40,480 a haber hecho esto 921 00:38:40,480 --> 00:38:47,309 idéntico 922 00:38:47,309 --> 00:38:49,190 este P aquí 923 00:38:49,190 --> 00:38:51,690 es el mismo que el P de aquí 924 00:38:51,690 --> 00:38:54,309 igual, este P es cada uno 925 00:38:54,309 --> 00:38:55,989 de los de mi set 926 00:38:55,989 --> 00:38:58,230 y este P es cada uno de los de mi set 927 00:38:58,230 --> 00:38:59,750 luego esto 928 00:38:59,750 --> 00:39:00,969 y esto es lo mismo 929 00:39:00,969 --> 00:39:04,489 entonces hago lo que sea 930 00:39:04,489 --> 00:39:06,530 con P y aquí lo mismo. 931 00:39:09,340 --> 00:39:10,880 Hago lo que sea 932 00:39:10,880 --> 00:39:13,159 con P. Cambiarle su 933 00:39:13,159 --> 00:39:15,179 valor, mostrarlo, lo que yo 934 00:39:15,179 --> 00:39:17,159 quiera. Me da lo mismo esto 935 00:39:17,159 --> 00:39:19,440 que esto. Voy obteniendo 936 00:39:19,440 --> 00:39:20,340 los sucesivos P. 937 00:39:21,139 --> 00:39:21,659 ¿Vale? 938 00:39:23,179 --> 00:39:25,139 ¿Por qué hemos 939 00:39:25,139 --> 00:39:26,679 planteado esta manera de recorrer? 940 00:39:27,599 --> 00:39:29,079 Porque si tú lo que quieres 941 00:39:29,079 --> 00:39:30,940 hacer aquí dentro resulta que es 942 00:39:30,940 --> 00:39:33,119 borrar este P y sólo 943 00:39:33,119 --> 00:39:34,880 en ese caso quieres borrar este P, 944 00:39:34,880 --> 00:39:37,019 como lo hagas aquí la has liado 945 00:39:37,019 --> 00:39:38,840 si tú quieres borrar 946 00:39:38,840 --> 00:39:40,659 si resulta que ese lo que sea 947 00:39:40,659 --> 00:39:41,639 es borrar ese p 948 00:39:41,639 --> 00:39:45,300 pues tú harías personas remove 949 00:39:45,300 --> 00:39:45,960 p 950 00:39:45,960 --> 00:39:47,300 harías eso 951 00:39:47,300 --> 00:39:49,219 y te quedaría tan ancho 952 00:39:49,219 --> 00:39:52,039 lo que yo quiero hacer con este p es remove p 953 00:39:52,039 --> 00:39:54,559 esto es lo que nos da 954 00:39:54,559 --> 00:39:56,300 un error de concurrencia 955 00:39:56,300 --> 00:39:58,039 yo no puedo 956 00:39:58,039 --> 00:40:00,239 plantearme borrar objetos 957 00:40:00,239 --> 00:40:02,940 que están recorriéndose dentro del for each 958 00:40:02,940 --> 00:40:04,860 entonces 959 00:40:04,860 --> 00:40:05,559 esto 960 00:40:05,559 --> 00:40:08,719 menos 961 00:40:08,719 --> 00:40:10,039 eliminar. 962 00:40:13,630 --> 00:40:15,610 Esto da una excepción 963 00:40:15,610 --> 00:40:17,110 concurrent bla bla bla. 964 00:40:20,480 --> 00:40:21,280 Esto no. 965 00:40:22,780 --> 00:40:23,119 Vale. 966 00:40:23,820 --> 00:40:25,559 Entonces, para este caso concreto 967 00:40:25,559 --> 00:40:27,940 recurrimos a este bucle. 968 00:40:28,239 --> 00:40:29,179 Recurrimos a este bucle. 969 00:40:30,320 --> 00:40:31,320 Recurrimos a este bucle. 970 00:40:31,840 --> 00:40:33,579 Y claro, aquí lo que no haríamos sería esto. 971 00:40:33,960 --> 00:40:35,400 Porque entonces no hemos ganado nada. 972 00:40:35,860 --> 00:40:36,619 No haríamos 973 00:40:36,619 --> 00:40:39,260 personas.remove p 974 00:40:39,260 --> 00:40:41,780 si vuelvo a hacer esto 975 00:40:41,780 --> 00:40:43,719 estoy en las mismas, no, aquí lo que hacemos 976 00:40:43,719 --> 00:40:44,980 es borrar a través de it 977 00:40:44,980 --> 00:40:48,980 entonces para borrar este p 978 00:40:48,980 --> 00:40:51,119 como este p está enganchado, apuntado 979 00:40:51,119 --> 00:40:53,260 a través de it, como está enganchado 980 00:40:53,260 --> 00:40:54,880 pues puedo aprovecharlo y decir 981 00:40:54,880 --> 00:40:59,340 tu it.remove 982 00:40:59,340 --> 00:41:03,079 y esto ya no me da ningún problema 983 00:41:03,079 --> 00:41:04,980 esta persona p habrá quedado borrada 984 00:41:04,980 --> 00:41:06,800 pero la he borrado a través de it 985 00:41:06,800 --> 00:41:08,880 la he borrado a través de it, no la he borrado 986 00:41:08,880 --> 00:41:09,820 a través de esto 987 00:41:09,820 --> 00:41:12,980 Sí, en este bulgo estáis borrando todas 988 00:41:12,980 --> 00:41:14,300 Pero bueno, es para poner un ejemplo 989 00:41:14,300 --> 00:41:16,980 Si lo metiéramos en un if, pues borraríamos solo a GQP 990 00:41:16,980 --> 00:41:18,400 En cierta condición, lo que sea 991 00:41:18,400 --> 00:41:21,760 Pues depende de la condición 992 00:41:21,760 --> 00:41:23,079 Si tú quieres borrar solo 993 00:41:23,079 --> 00:41:25,320 Claro 994 00:41:25,320 --> 00:41:26,940 Pues si p. 995 00:41:27,699 --> 00:41:29,059 Voy a, vamos a borrar 996 00:41:29,059 --> 00:41:31,099 Vamos a borrar 997 00:41:31,099 --> 00:41:32,559 A todos los jubilados 998 00:41:32,559 --> 00:41:34,460 Porque no valen para nada 999 00:41:34,460 --> 00:41:37,000 Según vosotros 1000 00:41:37,000 --> 00:41:39,099 Claro 1001 00:41:39,099 --> 00:41:40,579 Pues ya está 1002 00:41:40,579 --> 00:41:52,619 Puedes poner lo que te dé la gana 1003 00:41:52,619 --> 00:41:55,019 Depende de lo que te pida la aplicación 1004 00:41:55,019 --> 00:41:56,179 Entonces esto 1005 00:41:56,179 --> 00:41:59,480 Te daría problemas gordos 1006 00:41:59,480 --> 00:42:01,219 Tú no puedes borrar con un remove 1007 00:42:01,219 --> 00:42:02,019 Dentro de un for each 1008 00:42:02,019 --> 00:42:05,760 Salvo porque coincida de la puñetera casualidad 1009 00:42:05,760 --> 00:42:07,000 De que la única 1010 00:42:07,000 --> 00:42:09,619 que vas a borrar es la última 1011 00:42:09,619 --> 00:42:11,000 en ese caso 1012 00:42:11,000 --> 00:42:13,619 solo en ese caso el for ya ha soltado 1013 00:42:13,619 --> 00:42:14,659 el recurso, no hay problema 1014 00:42:14,659 --> 00:42:17,019 pero no sabemos si 1015 00:42:17,019 --> 00:42:19,039 es solo la última la que hay que eliminar 1016 00:42:19,039 --> 00:42:20,340 con lo cual nunca lo haríamos así 1017 00:42:20,340 --> 00:42:23,300 esto mal, esto bien 1018 00:42:23,300 --> 00:42:25,920 eso 1019 00:42:25,920 --> 00:42:27,460 esto bien 1020 00:42:27,460 --> 00:42:29,159 podemos borrar a través de it 1021 00:42:29,159 --> 00:42:31,760 bueno pues este es 1022 00:42:31,760 --> 00:42:33,400 el interés que tiene 1023 00:42:33,400 --> 00:42:34,559 recorrer por un iterador 1024 00:42:34,559 --> 00:42:36,619 si además quieres borrar 1025 00:42:36,619 --> 00:42:39,039 Si no, con un for each 1026 00:42:39,039 --> 00:42:41,059 Pues vas haciendo lo que te dé la gana 1027 00:42:41,059 --> 00:42:42,519 ¿Vale? 1028 00:42:46,659 --> 00:42:47,820 Más dudas 1029 00:42:47,820 --> 00:42:50,139 Concretas 1030 00:42:50,139 --> 00:43:02,570 Vale, pues 1031 00:43:02,570 --> 00:43:05,530 Mañana más