1 00:00:00,820 --> 00:00:02,180 silencio 2 00:00:02,180 --> 00:00:04,099 antes de que Ana baje la pantalla 3 00:00:04,099 --> 00:00:06,879 venga, ahí nos de mucho miedo 4 00:00:06,879 --> 00:00:08,439 bueno, pues la función de hash 5 00:00:08,439 --> 00:00:10,380 ha hecho la que le ha salido de ahí 6 00:00:10,380 --> 00:00:12,259 y nos la creemos porque es que no sabemos 7 00:00:12,259 --> 00:00:14,839 hacer funciones de hash optimizadas 8 00:00:14,839 --> 00:00:16,739 a los requisitos de nuestra aplicación 9 00:00:16,739 --> 00:00:18,239 ahora ya sí 10 00:00:18,239 --> 00:00:20,600 ahora volvemos a ejecutar esto 11 00:00:20,600 --> 00:00:22,300 y ahora ya 12 00:00:22,300 --> 00:00:24,579 sí que no me ha dejado meter el duplicado 13 00:00:24,579 --> 00:00:26,420 y no me ha dicho nada 14 00:00:26,420 --> 00:00:28,100 yo he hecho dos add 15 00:00:28,100 --> 00:00:29,600 no me ha dicho nada 16 00:00:29,600 --> 00:00:34,020 ¿vale? pero ad 17 00:00:34,020 --> 00:00:36,439 si yo quiero comprobar si la inserción 18 00:00:36,439 --> 00:00:37,579 ha sido efectiva o no 19 00:00:37,579 --> 00:00:40,460 veréis que ad devuelve un boolean 20 00:00:40,460 --> 00:00:42,439 lo sabemos, lo vimos ayer 21 00:00:42,439 --> 00:00:44,679 ah, vale, vale, vale 22 00:00:44,679 --> 00:00:46,439 te devuelve un boolean para ver 23 00:00:46,439 --> 00:00:48,320 si la inserción ha sido efectiva o no 24 00:00:48,320 --> 00:00:50,740 ¿vale? en el caso de la lista 25 00:00:50,740 --> 00:00:52,640 los ad van a ser 26 00:00:52,640 --> 00:00:54,500 efectivos siempre, salvo 27 00:00:54,500 --> 00:00:55,280 casos muy 28 00:00:55,280 --> 00:00:58,520 pero en el que haya un error 29 00:00:58,520 --> 00:01:00,140 de excepción, de lo que sea 30 00:01:00,140 --> 00:01:01,280 pero en el caso de los set 31 00:01:01,280 --> 00:01:02,539 aquí sí importa 32 00:01:02,539 --> 00:01:03,340 controlar el boolean 33 00:01:03,340 --> 00:01:05,019 porque tú aquí crees 34 00:01:05,019 --> 00:01:05,540 que estás metiendo 35 00:01:05,540 --> 00:01:06,319 un montón de alumnos 36 00:01:06,319 --> 00:01:07,459 y han metido el primero 37 00:01:07,459 --> 00:01:08,140 porque te hace 38 00:01:08,140 --> 00:01:08,840 que estás repitiendo 39 00:01:08,840 --> 00:01:09,260 los nips 40 00:01:09,260 --> 00:01:10,099 sin darte cuenta 41 00:01:10,099 --> 00:01:10,599 lo que sea 42 00:01:10,599 --> 00:01:11,459 ¿te devuelve 43 00:01:11,459 --> 00:01:12,780 si es repetido? 44 00:01:13,680 --> 00:01:14,079 claro 45 00:01:14,079 --> 00:01:14,819 claro 46 00:01:14,819 --> 00:01:15,939 vamos a meter esto 47 00:01:15,939 --> 00:01:16,939 o sea yo puedo meter esto 48 00:01:16,939 --> 00:01:17,400 en un siso 49 00:01:17,400 --> 00:01:18,159 para controlar 50 00:01:18,159 --> 00:01:20,180 meto en un siso 51 00:01:20,180 --> 00:01:20,980 el primer add 52 00:01:20,980 --> 00:01:25,569 pero yo lo ejecuté 53 00:01:25,569 --> 00:01:25,989 y me salieron 54 00:01:25,989 --> 00:01:26,689 los dos alumnos 55 00:01:26,689 --> 00:01:27,689 entonces que se repiten 56 00:01:27,689 --> 00:01:28,010 primero 57 00:01:28,010 --> 00:01:28,950 pero has puesto 58 00:01:28,950 --> 00:01:29,409 el hashcode 59 00:01:29,409 --> 00:01:29,769 y el equals 60 00:01:29,769 --> 00:01:33,650 Claro, es que te has saltado 61 00:01:33,650 --> 00:01:35,250 No, no, es que lo hice antes 62 00:01:35,250 --> 00:01:36,609 Ah 63 00:01:36,609 --> 00:01:38,769 Ah, bueno, vale 64 00:01:38,769 --> 00:01:41,310 Vale, ¿qué iba a hacer yo? 65 00:01:41,450 --> 00:01:43,430 Y ponemos este SISO también aquí 66 00:01:43,430 --> 00:01:53,420 Vale, entonces 67 00:01:53,420 --> 00:01:55,019 Efectivamente 68 00:01:55,019 --> 00:01:56,560 La segunda inserción no se hizo 69 00:01:56,560 --> 00:01:58,819 No es que haya habido un problema 70 00:01:58,819 --> 00:02:01,239 Sino simplemente que tú has intentado meter un duplicado 71 00:02:01,239 --> 00:02:03,400 Entonces puedes llevar el control 72 00:02:03,400 --> 00:02:05,299 Si quieres, de las inserciones efectivas 73 00:02:05,299 --> 00:02:06,280 Que hay 74 00:02:06,280 --> 00:02:07,980 ¿Vale? 75 00:02:10,710 --> 00:02:11,469 Entonces 76 00:02:11,469 --> 00:02:22,550 Vamos a meter por ejemplo 77 00:02:22,550 --> 00:02:24,069 Un alumno 78 00:02:24,069 --> 00:02:25,770 De NIF 0 79 00:02:25,770 --> 00:02:30,009 Ahora si meto un alumno 80 00:02:30,009 --> 00:02:30,949 De NIF 0 81 00:02:30,949 --> 00:02:33,810 A ver que me distraes 82 00:02:33,810 --> 00:02:35,590 Ahora si metía un alumno de NIF 0 83 00:02:35,590 --> 00:02:37,310 Aunque sea este 84 00:02:37,310 --> 00:02:38,289 Si me lo va a meter 85 00:02:38,289 --> 00:02:41,530 ¿Vale? Sí, hasta el fondo 86 00:02:41,530 --> 00:02:43,669 Y lo que pasa es que 87 00:02:43,669 --> 00:02:44,830 Estaba buscando forzar 88 00:02:44,830 --> 00:02:47,530 Que vierais que el orden 89 00:02:47,530 --> 00:02:48,430 De iteración 90 00:02:48,430 --> 00:02:52,050 No es el que yo inserté, aquí se ha coincidido 91 00:02:52,050 --> 00:02:53,830 Pero si yo, no tiene 92 00:02:53,830 --> 00:02:55,629 Por qué, tú vas metiendo 93 00:02:55,629 --> 00:02:57,710 Alumnos, claro, y cuando 94 00:02:57,710 --> 00:02:59,550 Tú vas metiendo, tú vas iterando 95 00:02:59,550 --> 00:03:01,949 Te van saliendo, vas sacando 96 00:03:01,949 --> 00:03:03,909 De la caja en un orden que no tiene nada que ver 97 00:03:03,909 --> 00:03:04,650 ¿Vale? 98 00:03:04,650 --> 00:03:07,949 ahí sí que viene la única 99 00:03:07,949 --> 00:03:10,069 diferencia entre el hash set 100 00:03:10,069 --> 00:03:11,530 y el linked hash set 101 00:03:11,530 --> 00:03:13,530 hay dos implementaciones de 102 00:03:13,530 --> 00:03:14,550 bueno, hay tres de set 103 00:03:14,550 --> 00:03:17,150 recordad que he escrito al principio 104 00:03:17,150 --> 00:03:19,530 hash set y linked hash set 105 00:03:19,530 --> 00:03:22,030 las dos se implementan por abajo con una tabla 106 00:03:22,030 --> 00:03:23,930 hash, en las dos hay que hacer el hash code 107 00:03:23,930 --> 00:03:25,830 y el equals, las dos son iguales 108 00:03:25,830 --> 00:03:27,469 pero el linked hash set 109 00:03:27,469 --> 00:03:29,430 te mete algo más 110 00:03:29,430 --> 00:03:31,530 para que el orden de iteración 111 00:03:31,530 --> 00:03:33,409 sea el mismo que el de inserción 112 00:03:33,409 --> 00:03:35,030 es la única diferencia 113 00:03:35,030 --> 00:03:38,150 entonces si a ti te importa en la aplicación que sea 114 00:03:38,150 --> 00:03:39,650 porque tienes una interfaz gráfica 115 00:03:39,650 --> 00:03:42,310 que cuando tú vas a mostrar en un desplegable 116 00:03:42,310 --> 00:03:44,069 los alumnos, lo vas a hacer 117 00:03:44,069 --> 00:03:46,030 recogiendo del set y quieres que se muestre 118 00:03:46,030 --> 00:03:47,349 en el orden en el que los insertaste 119 00:03:47,349 --> 00:03:48,849 si te importa 120 00:03:48,849 --> 00:03:52,069 que en el orden de iteración 121 00:03:52,069 --> 00:03:53,909 sea el mismo que el orden en el que tú metiste 122 00:03:53,909 --> 00:03:55,949 si te importa, pues haz un link 123 00:03:55,949 --> 00:03:58,189 en hashet, si no te importa 124 00:03:58,189 --> 00:03:59,650 haz un hashet y ya está 125 00:03:59,650 --> 00:04:00,050 ¿vale? 126 00:04:01,030 --> 00:04:02,530 entonces lo vamos a escribir aquí 127 00:04:02,530 --> 00:04:15,330 el orden en el que 128 00:04:15,330 --> 00:04:16,550 aparecen 129 00:04:53,389 --> 00:04:54,029 ¿vale? 130 00:04:54,029 --> 00:04:56,930 pues en realidad nos quedamos 131 00:04:56,930 --> 00:04:58,589 iteración 132 00:04:58,589 --> 00:04:59,889 con que esa es la única diferencia 133 00:04:59,889 --> 00:05:01,170 conclusión 134 00:05:01,170 --> 00:05:04,069 del link de haset pues ya pasamos 135 00:05:04,069 --> 00:05:06,550 no vamos a mencionar nada más de él porque es igual que el haset 136 00:05:06,550 --> 00:05:08,810 salvo que cuando iteramos por él 137 00:05:08,810 --> 00:05:10,250 se conserva el orden, ya está 138 00:05:10,250 --> 00:05:12,529 entonces cuidadín 139 00:05:12,529 --> 00:05:14,389 porque si 140 00:05:14,389 --> 00:05:16,250 si viniéramos de una clase que alguien nos ha dado 141 00:05:16,250 --> 00:05:18,069 por ahí que la estuvo usando en listas 142 00:05:18,069 --> 00:05:19,490 y que esto no lo tenía 143 00:05:19,490 --> 00:05:22,509 porque el hasco no lo tenía aunque tuviera 144 00:05:22,509 --> 00:05:23,110 el equals 145 00:05:23,110 --> 00:05:25,850 esto va a seguir 146 00:05:25,850 --> 00:05:27,910 sin distinguir 147 00:05:27,910 --> 00:05:28,990 la igualdad correctamente 148 00:05:28,990 --> 00:05:31,730 luego el hash set usa los dos 149 00:05:31,730 --> 00:05:33,290 primero el hash code 150 00:05:33,290 --> 00:05:35,370 y luego el equals, el hash code para 151 00:05:35,370 --> 00:05:37,069 la posición del array 152 00:05:37,069 --> 00:05:39,389 y el equals para la posición en la lista 153 00:05:39,389 --> 00:05:41,110 entonces necesitamos los dos 154 00:05:41,110 --> 00:05:43,790 si uno me falta, esto otra vez va a volver 155 00:05:43,790 --> 00:05:45,449 a no hacérmelo 156 00:05:45,449 --> 00:05:47,509 por ejemplo vamos a meter dos con 157 00:05:47,509 --> 00:05:49,670 nif1, vamos a meter dos con 158 00:05:49,670 --> 00:05:51,509 nif1 y yo el hash code no lo he hecho 159 00:05:51,509 --> 00:05:52,550 Porque es de una trampa pelada 160 00:05:52,550 --> 00:05:54,110 O viene de otro sitio, lo que sea 161 00:05:54,110 --> 00:05:56,810 Pues como veis he metido los dos 162 00:05:56,810 --> 00:05:58,189 Porque no he detectado que son duplicados 163 00:05:58,189 --> 00:06:00,230 Aunque el equals, sí 164 00:06:00,230 --> 00:06:02,449 Pero el hashcode del equals solo no le vale 165 00:06:02,449 --> 00:06:04,250 Hace primero el hashcode y luego el equals 166 00:06:04,250 --> 00:06:07,129 Y lo mismo, si yo tengo solo el hashcode 167 00:06:07,129 --> 00:06:07,750 Y el equals no 168 00:06:07,750 --> 00:06:10,829 Puedes usar una función del alumno con 169 00:06:10,829 --> 00:06:11,649 Nib1 170 00:06:11,649 --> 00:06:14,149 Por ejemplo, crear una función en cualquiera 171 00:06:14,149 --> 00:06:16,209 Esta 172 00:06:16,209 --> 00:06:17,490 Uy, perdón 173 00:06:17,490 --> 00:06:20,829 Quiero que uses una función 174 00:06:20,829 --> 00:06:23,269 desde un alumno que está dentro de esa 175 00:06:23,269 --> 00:06:25,350 no te refieres 176 00:06:25,350 --> 00:06:26,649 a que implemente yo esto, otra cosa 177 00:06:26,649 --> 00:06:29,529 que accedas a ese alumno 178 00:06:29,529 --> 00:06:30,730 y usas una función de ese alumno 179 00:06:30,730 --> 00:06:32,050 del alumno probablemente 180 00:06:32,050 --> 00:06:34,769 cualquier función 181 00:06:34,769 --> 00:06:36,069 crea una función cualquiera 182 00:06:36,069 --> 00:06:39,350 un método en alumno, te refieres a un método cualquiera 183 00:06:39,350 --> 00:06:41,589 pues como por ejemplo 184 00:06:41,589 --> 00:06:43,350 un método cualquiera que me devuelva 185 00:06:43,350 --> 00:07:03,389 Vuelva y que me haga, uy, soy este de aquí. 186 00:07:04,329 --> 00:07:04,569 Vale. 187 00:07:06,269 --> 00:07:06,790 Entonces. 188 00:07:07,129 --> 00:07:11,180 El alumno con dos NIF distintos. 189 00:07:11,459 --> 00:07:15,319 Vale, agrego el alumno de NIF 1 y el alumno de NIF 2. 190 00:07:15,319 --> 00:07:17,860 Y ahora usa el método de alumno de NIF 2. 191 00:07:18,199 --> 00:07:19,500 Vale, tengo que iterar. 192 00:07:20,339 --> 00:07:21,819 Ese es el asunto, que tengo que iterar. 193 00:07:21,879 --> 00:07:24,079 No puedo decir, dame el alumno de NIF 2. 194 00:07:24,540 --> 00:07:24,920 Eso es. 195 00:07:25,060 --> 00:07:27,019 ¿Vale? Tengo que iterar 196 00:07:27,019 --> 00:07:29,139 ¿Pero creas un alumno apuntando a null 197 00:07:29,139 --> 00:07:30,560 y luego guardas ese alumno? 198 00:07:31,220 --> 00:07:32,300 No, haría esto 199 00:07:32,300 --> 00:07:33,439 si 200 00:07:33,439 --> 00:07:36,819 a equals 201 00:07:36,819 --> 00:07:39,139 efectivamente 202 00:07:39,139 --> 00:07:40,139 me haría yo aquí 203 00:07:40,139 --> 00:07:41,120 ahora 204 00:07:41,120 --> 00:07:44,839 o bueno, no hace falta 205 00:07:44,839 --> 00:07:46,779 puedo hacerlo más sencillo 206 00:07:46,779 --> 00:07:48,839 Claro, si a 207 00:07:48,839 --> 00:07:51,060 punto getNif 208 00:07:51,060 --> 00:07:54,279 punto equals 209 00:07:54,279 --> 00:07:55,540 el NIF que te han dado 210 00:07:55,540 --> 00:07:58,779 el que sea, imagina el de 2 211 00:07:58,779 --> 00:07:59,860 pues ya está 212 00:07:59,860 --> 00:08:02,180 pues entonces apunto, saluda 213 00:08:02,180 --> 00:08:03,579 ¿vale? 214 00:08:04,699 --> 00:08:06,560 esta es la manera en la que lo podrías hacer 215 00:08:06,560 --> 00:08:08,300 ¿vale? 216 00:08:08,339 --> 00:08:09,839 no hace falta que te hagas un alumno 217 00:08:09,839 --> 00:08:11,879 y que apliques él 218 00:08:11,879 --> 00:08:14,639 entonces si tú haces esto, pues te va a saludar 219 00:08:14,639 --> 00:08:16,600 el segundo que hemos metido 220 00:08:16,600 --> 00:08:18,980 efectivamente 221 00:08:18,980 --> 00:08:20,759 para modificarlo 222 00:08:20,759 --> 00:08:22,579 efectivamente tienes que iterar 223 00:08:22,579 --> 00:08:23,959 esa es la desventaja del set 224 00:08:23,959 --> 00:08:26,160 iterar desde for each y poner a.set 225 00:08:26,160 --> 00:08:27,759 nombre y le modifica 226 00:08:27,759 --> 00:08:29,100 efectivamente 227 00:08:29,100 --> 00:08:32,039 el problema del set es que para localizar 228 00:08:32,039 --> 00:08:33,840 a uno concreto, como están todos a mogollón 229 00:08:33,840 --> 00:08:35,659 tienes que iterar dentro 230 00:08:35,659 --> 00:08:37,500 y buscarle 231 00:08:37,500 --> 00:08:40,220 bien con el equal si te has creado un igual a él 232 00:08:40,220 --> 00:08:42,220 bien con el nif, entonces precisamente 233 00:08:42,220 --> 00:08:44,059 para localizar 234 00:08:44,059 --> 00:08:45,139 de forma más fácil 235 00:08:45,139 --> 00:08:48,139 porque claro, la pega que tiene el hash set es estupenda 236 00:08:48,139 --> 00:08:50,139 porque están todos a mogollón, no tengo que llevar un registro 237 00:08:50,139 --> 00:08:52,059 de la posición, eso es más cómodo 238 00:08:52,059 --> 00:08:54,059 la estructura de una tabla has 239 00:08:54,059 --> 00:08:55,759 con enlaces es óptima 240 00:08:55,759 --> 00:08:58,000 vale, pero esta es la pega 241 00:08:58,000 --> 00:08:59,980 que para localizar yo a uno 242 00:08:59,980 --> 00:09:02,139 y sacarlo, tengo que mirarlos todos 243 00:09:02,139 --> 00:09:03,759 y es un rollo 244 00:09:03,759 --> 00:09:05,360 entonces, para 245 00:09:05,360 --> 00:09:07,200 optimizar esto 246 00:09:07,200 --> 00:09:09,700 es para lo que se hacen los 247 00:09:09,700 --> 00:09:10,639 mapas 248 00:09:10,639 --> 00:09:13,940 que los mapas son, yo tengo mi caja 249 00:09:13,940 --> 00:09:15,559 pero 250 00:09:15,559 --> 00:09:17,980 a cada objeto que está en mi caja 251 00:09:17,980 --> 00:09:20,059 con todas las ventajas de la 252 00:09:20,059 --> 00:09:21,980 caja, de que es una tabla has, todo eso 253 00:09:21,980 --> 00:09:24,679 les asocio una clave 254 00:09:24,679 --> 00:09:28,299 y que en este caso sería el nid 255 00:09:28,299 --> 00:09:30,000 y ahora le digo 256 00:09:30,000 --> 00:09:32,379 sácame el objeto de clave tal 257 00:09:32,379 --> 00:09:33,879 y no tienes que iterar 258 00:09:33,879 --> 00:09:36,559 pues por eso están geniales los mapas 259 00:09:36,559 --> 00:09:37,460 ¿vale? 260 00:09:38,940 --> 00:09:40,179 muy rápidamente 261 00:09:40,179 --> 00:09:42,179 cuando tengamos esto un poco más suelto 262 00:09:42,179 --> 00:09:43,100 ¿vale? 263 00:09:43,779 --> 00:09:44,659 ¿tú quieres? 264 00:09:46,679 --> 00:09:46,980 dime 265 00:09:46,980 --> 00:09:50,559 oye, John, sé más educado 266 00:09:50,559 --> 00:09:54,480 de verdad, no me extraña que no quieran 267 00:09:54,480 --> 00:09:56,039 contratar, dime 268 00:09:56,039 --> 00:10:00,299 en un linked list 269 00:10:00,299 --> 00:10:01,779 tú puedes recuperar por posición 270 00:10:01,779 --> 00:10:03,720 el 3 271 00:10:03,720 --> 00:10:06,379 pero si quieres encontrar el que cumple 272 00:10:06,379 --> 00:10:08,580 una condición como Sunit, tienes que tirar también 273 00:10:08,580 --> 00:10:12,480 claro, lo que pasa es que te aporta 274 00:10:12,480 --> 00:10:14,080 el recuperar el primero 275 00:10:14,080 --> 00:10:15,440 o el tercero, o el quinto 276 00:10:15,440 --> 00:10:17,139 pero si quieres recuperar 277 00:10:17,139 --> 00:10:20,200 dame el primero, dame el quinto 278 00:10:20,200 --> 00:10:22,519 porque tiene una posición, pero si quieres 279 00:10:22,519 --> 00:10:23,940 recuperar por contenido 280 00:10:23,940 --> 00:10:26,279 tienes que iterar igual, iteras 281 00:10:26,279 --> 00:10:28,639 a ver cuando encuentras aquel cuyo contenido 282 00:10:28,639 --> 00:10:29,500 es el que te interesa 283 00:10:29,500 --> 00:10:32,759 ¿vale? si tú quieres localizar 284 00:10:32,759 --> 00:10:34,279 por contenido tienes que iterar 285 00:10:34,279 --> 00:10:35,600 me da igual que sea un set que un list 286 00:10:35,600 --> 00:10:38,600 si fuera un mapa no, porque dices 287 00:10:38,600 --> 00:10:39,720 dame el de la clave tal 288 00:10:39,720 --> 00:10:42,480 que la clave ya tiene parte del contenido 289 00:10:42,480 --> 00:10:44,200 ¿vale? 290 00:10:44,500 --> 00:10:46,620 lo único que el list, eso, el list te permite 291 00:10:46,620 --> 00:10:48,659 sacar por posición 292 00:10:48,659 --> 00:10:50,019 sin tener que iterar 293 00:10:50,019 --> 00:10:52,820 dame el cuarto, por ejemplo, si tú sabes que el cuarto 294 00:10:52,820 --> 00:10:53,679 es el que quieres, claro 295 00:10:53,679 --> 00:10:56,460 get y la posición 296 00:10:56,460 --> 00:10:57,940 pero claro, tienes que saber las posiciones 297 00:10:57,940 --> 00:11:00,019 claro, claro 298 00:11:00,019 --> 00:11:02,399 este no tiene, yo aquí no podría iterar 299 00:11:02,399 --> 00:11:04,679 no podría, si yo aquí hago 300 00:11:04,679 --> 00:11:06,240 alumnos 301 00:11:06,240 --> 00:11:08,720 trato de hacer el primero 302 00:11:08,720 --> 00:11:10,539 que metí, get 0, me dice 303 00:11:10,539 --> 00:11:12,559 pero ¿qué me estás contando? el método get 304 00:11:12,559 --> 00:11:13,659 no existe en hashed 305 00:11:13,659 --> 00:11:16,519 ¿vale? entonces 306 00:11:16,519 --> 00:11:17,740 por ejemplo 307 00:11:17,740 --> 00:11:19,639 yo quiero 308 00:11:19,639 --> 00:11:21,639 eliminar 309 00:11:21,639 --> 00:11:24,220 vamos a eliminar, vale, esto de la 310 00:11:24,220 --> 00:11:26,159 iteración y la necesidad del jasco de 311 00:11:26,159 --> 00:11:28,220 equals está claro, ¿no? Vamos a hacer 312 00:11:28,220 --> 00:11:28,559 ahora 313 00:11:28,559 --> 00:11:32,460 eliminar el alumno 314 00:11:32,460 --> 00:11:33,779 de mif 315 00:11:33,779 --> 00:11:35,840 el que sea, uno 316 00:11:35,840 --> 00:11:38,059 por ejemplo, o uno que me han pasado por parámetro 317 00:11:38,059 --> 00:11:39,240 el que sea, vamos a eliminarlo 318 00:11:39,240 --> 00:11:41,980 vale, pues ¿cómo elimino yo 319 00:11:41,980 --> 00:11:42,559 de un set? 320 00:11:43,820 --> 00:11:46,019 pues si miramos los métodos que me 321 00:11:46,019 --> 00:11:47,919 ofrece set, pues tiene 322 00:11:47,919 --> 00:11:48,779 el método remove 323 00:11:48,779 --> 00:11:51,879 y a remove 324 00:11:51,879 --> 00:11:52,960 que hay que pasarle 325 00:11:52,960 --> 00:11:56,059 hay que pasarle un objeto 326 00:11:56,059 --> 00:11:58,019 alumno que sea 327 00:11:58,019 --> 00:12:00,080 igual que el que quiero 328 00:12:00,080 --> 00:12:01,240 eliminar 329 00:12:01,240 --> 00:12:02,000 ¿vale? 330 00:12:05,220 --> 00:12:05,700 justo 331 00:12:05,700 --> 00:12:08,240 eso 332 00:12:08,240 --> 00:12:15,470 porque así funciona remove 333 00:12:15,470 --> 00:12:17,769 le pasas un objeto, entonces 334 00:12:17,769 --> 00:12:20,470 oye, pues como mi jasco de equals 335 00:12:20,470 --> 00:12:21,830 que aquí importantísimo 336 00:12:21,830 --> 00:12:23,750 como es un haset, jasco de i 337 00:12:23,750 --> 00:12:25,049 pues van los dos de la mano 338 00:12:25,049 --> 00:12:26,970 tira solo de nif 339 00:12:26,970 --> 00:12:29,309 pues yo le paso esto 340 00:12:29,309 --> 00:12:33,490 ah vale 341 00:12:33,490 --> 00:12:35,629 vale, ni olivia, aquí le paso lo que me dé la gana 342 00:12:35,629 --> 00:12:36,450 es que me da igual 343 00:12:36,450 --> 00:12:38,970 vale 344 00:12:38,970 --> 00:12:41,450 vale 345 00:12:41,450 --> 00:12:42,690 pues que te hace remove 346 00:12:42,690 --> 00:12:44,049 remove 347 00:12:44,049 --> 00:12:47,690 busca dentro de la caja 348 00:12:47,690 --> 00:12:49,409 un objeto 349 00:12:49,409 --> 00:12:50,509 igual que este 350 00:12:50,509 --> 00:12:52,909 que significa igual 351 00:12:52,909 --> 00:12:55,669 que la sucesión de Hasco de Equal 352 00:12:55,669 --> 00:12:56,269 es de True 353 00:12:56,269 --> 00:12:59,370 pero como Hasco de Equal 354 00:12:59,370 --> 00:13:00,610 tiran solo de NIF 355 00:13:00,610 --> 00:13:03,409 porque Hasco de Equal tienen que estar coordinados 356 00:13:03,409 --> 00:13:04,909 los dos, si Hasco tira de NIF 357 00:13:04,909 --> 00:13:07,809 justo, como tira solo de NIF 358 00:13:07,809 --> 00:13:09,870 yo aquí pongo lo que me dé la gana 359 00:13:09,870 --> 00:13:10,950 vale 360 00:13:10,950 --> 00:13:13,169 pongo lo que me dé la gana 361 00:13:13,169 --> 00:13:15,129 si un segundinín como si pongo NULL 362 00:13:15,129 --> 00:13:17,590 un segundito 363 00:13:17,590 --> 00:13:22,889 el remove 364 00:13:22,889 --> 00:13:24,809 te devuelve, supongo que sí 365 00:13:24,809 --> 00:13:26,269 te devuelve un boolean 366 00:13:26,269 --> 00:13:29,070 que te dirá true si ha hecho un borrado efectivo 367 00:13:29,070 --> 00:13:29,909 o no 368 00:13:29,909 --> 00:13:32,029 entonces 369 00:13:32,029 --> 00:13:36,690 claro, esto es mucho mejor que los arrays 370 00:13:36,690 --> 00:13:37,669 lógicamente 371 00:13:37,669 --> 00:13:39,570 muchísimo mejor 372 00:13:41,970 --> 00:13:43,129 ¿qué ibas a decir? 373 00:13:43,129 --> 00:13:54,389 A ver, lo comenté para que comprobáramos que si solo está uno de los dos y no están los dos, 374 00:13:55,009 --> 00:13:59,330 el hash set no es capaz de identificar la igualdad, no funciona. 375 00:13:59,330 --> 00:14:06,409 Entonces, si el hash code no está y yo le pasara dos objetos del mismo NIF, para él no son iguales, 376 00:14:07,149 --> 00:14:11,669 porque él solo es capaz de identificar la igualdad si están los dos, hash code de igual. 377 00:14:11,669 --> 00:14:13,350 El list no 378 00:14:13,350 --> 00:14:15,529 El list con que esté el equals 379 00:14:15,529 --> 00:14:17,090 Ya le vale para la igualdad 380 00:14:17,090 --> 00:14:19,210 Pero ese es el casco de equals 381 00:14:19,210 --> 00:14:20,409 Vale 382 00:14:20,409 --> 00:14:23,250 Y set tiene un montón de métodos 383 00:14:23,250 --> 00:14:24,370 Que son para mil cosas 384 00:14:24,370 --> 00:14:27,590 Para ver si la colección contiene uno igual a otro 385 00:14:27,590 --> 00:14:28,330 El contains 386 00:14:28,330 --> 00:14:30,450 Para mil rollos, vale 387 00:14:30,450 --> 00:14:32,490 Que iremos explorando las diferentes aplicaciones 388 00:14:32,490 --> 00:14:36,950 Vale