1 00:00:01,520 --> 00:00:12,099 Vale, el planificador se llama plan, pues venga, vamos a ejecutar uno, otro y otro, vamos a ejecutar tres. 2 00:00:20,100 --> 00:00:28,100 Se supone que hemos ejecutado tres, vamos a mirar los que quedan pendientes y los que hay ahora en ejecución, a ver si este ejecutar se ha hecho bien. 3 00:00:29,079 --> 00:00:34,840 Venga, pues vamos a volver a mirar los pendientes, vamos a volver a copiar, la verdad es que esto es tan feo que si luego lo vamos a subir para que quede bonito. 4 00:00:34,840 --> 00:00:37,020 voy a agregar un método que sea 5 00:00:37,020 --> 00:00:39,200 listar procesos pendientes y otro listar 6 00:00:39,200 --> 00:00:40,579 procesos en ejecución y ya está 7 00:00:40,579 --> 00:00:43,280 entonces voy a agregar 8 00:00:43,280 --> 00:00:45,340 aquí un método que sea 9 00:00:45,340 --> 00:00:47,700 listar 10 00:00:47,700 --> 00:00:49,119 pendientes, no sé si 11 00:00:49,119 --> 00:00:50,659 el ejercicio lo pedía 12 00:00:50,659 --> 00:00:53,439 si, había uno listar ejecución 13 00:00:53,439 --> 00:00:55,479 si, pero listar ejecución 14 00:00:55,479 --> 00:00:57,320 ordenando, no, voy a 15 00:00:57,320 --> 00:00:59,399 hacer uno listar ejecución tal cual, ese lo hacemos luego 16 00:00:59,399 --> 00:01:01,219 voy a hacerme un 17 00:01:01,219 --> 00:01:03,320 auxiliar listar pendientes 18 00:01:03,320 --> 00:01:33,189 y este auxiliar, listar pendientes, es este código de aquí, este código, que corto y meto aquí, listar pendientes, listar pendientes, le tengo que pasar de este planificador, de este, claro, listar pendientes de este planificador, vale, este método mío auxiliar, 19 00:01:33,189 --> 00:01:36,709 Me lista todos los procesos pendientes 20 00:01:36,709 --> 00:01:38,609 Del planificador este que yo le pasé aquí 21 00:01:38,609 --> 00:01:41,030 Y ahora vamos a hacer uno de lista en ejecución 22 00:01:41,030 --> 00:01:42,569 Sin orden y sin nada 23 00:01:42,569 --> 00:01:44,609 Para hacer comprobaciones 24 00:01:44,609 --> 00:01:46,290 Qué aburrida estás, ¿verdad? 25 00:01:46,909 --> 00:01:47,170 No 26 00:01:47,170 --> 00:01:49,390 Es que me miras con una cara de aburrimiento 27 00:01:49,390 --> 00:01:52,069 Pero forma parte de la vida, ¿eh? Aburrirse 28 00:01:52,069 --> 00:01:57,200 Vale, vamos a lista en ejecución 29 00:01:57,200 --> 00:01:59,079 Procesos 30 00:01:59,079 --> 00:02:01,459 Ejecu 31 00:02:01,459 --> 00:02:03,219 Oye 32 00:02:03,219 --> 00:02:10,300 No, no, era que no te metieras con él 33 00:02:10,300 --> 00:02:11,240 Claro, efectivamente 34 00:02:11,240 --> 00:02:13,979 Perdona que soy hija de Madero 35 00:02:13,979 --> 00:02:16,080 Hace el favor 36 00:02:16,080 --> 00:02:17,539 ¿Sí? 37 00:02:18,180 --> 00:02:19,860 A todos, alguien, a ver 38 00:02:19,860 --> 00:02:22,639 Tienes que ser hija de alguien 39 00:02:22,639 --> 00:02:23,300 Siempre, ¿no? 40 00:02:23,300 --> 00:02:25,159 Pues a mí me ha tocado eso 41 00:02:25,159 --> 00:02:29,620 Procesos en ejecución 42 00:02:29,620 --> 00:02:32,039 Plan punto ejecución 43 00:02:32,039 --> 00:02:35,120 ejecución 44 00:02:35,120 --> 00:02:37,139 vale, pues venga 45 00:02:37,139 --> 00:02:39,039 ya tengo estos dos métodos que lo único que 46 00:02:39,039 --> 00:02:41,379 hacen es listar los pendientes 47 00:02:41,379 --> 00:02:42,620 y listar en ejecución 48 00:02:42,620 --> 00:02:44,939 de este planificador, voy a llamarlo 49 00:02:44,939 --> 00:02:46,900 aquí antes de la ejecución y 50 00:02:46,900 --> 00:02:48,900 después voy a llamar a los 51 00:02:48,900 --> 00:02:50,800 pendientes 52 00:02:50,800 --> 00:02:57,180 pendientes 53 00:02:57,180 --> 00:02:59,319 de este planificador 54 00:02:59,319 --> 00:03:02,360 si no le pongo un static 55 00:03:02,360 --> 00:03:03,400 pues voy mal 56 00:03:03,400 --> 00:03:06,919 Vale 57 00:03:06,919 --> 00:03:11,169 Vale 58 00:03:11,169 --> 00:03:13,550 Y ahora después de haber ejecutado 3 59 00:03:13,550 --> 00:03:15,310 Voy a volver a listar 60 00:03:15,310 --> 00:03:16,870 Los pendientes que me han quedado 61 00:03:16,870 --> 00:03:20,939 Y los que están en ejecución 62 00:03:20,939 --> 00:03:21,340 También 63 00:03:21,340 --> 00:03:24,620 A ver si hay 3 en ejecución y en pendientes 64 00:03:24,620 --> 00:03:25,879 3 menos 65 00:03:25,879 --> 00:03:31,219 Venga, vamos a por este main 66 00:03:31,219 --> 00:03:32,620 Después de ejecutar 3 67 00:03:32,620 --> 00:03:34,400 A ver 68 00:03:34,400 --> 00:03:40,280 Vale, primero hemos añadido 69 00:03:40,280 --> 00:03:42,560 Los 10, aquí están, ordenados 70 00:03:42,560 --> 00:03:57,870 Que feo esto 71 00:03:57,870 --> 00:04:02,620 Ah, es que debo tener 72 00:04:02,620 --> 00:04:05,240 En ejecutar 73 00:04:05,240 --> 00:04:06,819 Debo tener dentro de ejecutar 74 00:04:06,819 --> 00:04:07,939 Debo tener algún 75 00:04:07,939 --> 00:04:10,240 Ah, claro, es que en ejecutar tenía este for dentro 76 00:04:10,240 --> 00:04:12,520 Perdón, entonces claro, me sale mil veces 77 00:04:12,520 --> 00:04:13,419 Fuera 78 00:04:13,419 --> 00:04:16,040 Vale, ahora 79 00:04:16,040 --> 00:04:18,759 Siguiente intento 80 00:04:18,759 --> 00:04:21,240 Venga, los 10 primeros añadidos 81 00:04:21,240 --> 00:04:22,680 Muy bien, muy ordenaditos 82 00:04:22,680 --> 00:04:23,600 Como tenía que ser 83 00:04:23,600 --> 00:04:25,480 Por prioridad y duración 84 00:04:25,480 --> 00:04:42,379 Vale, ahora he ejecutado tres, se supone que son estos, porque los va sacando por orden de prioridad, con lo cual, ¿cuáles me han quedado como pendientes? Los de abajo, todos menos estos, esos son los pendientes que me han quedado. 85 00:04:42,379 --> 00:04:43,819 ¿Y cuáles tengo como ejecución? 86 00:04:44,459 --> 00:04:45,839 Pues tengo estos 87 00:04:45,839 --> 00:04:48,600 El 8, el 3 y el 7 88 00:04:48,600 --> 00:04:50,100 Y 89 00:04:50,100 --> 00:04:51,819 Que bendita casualidad 90 00:04:51,819 --> 00:04:54,000 Que el listado de procesos en ejecución 91 00:04:54,000 --> 00:04:56,279 Está en orden de prioridad 92 00:04:56,279 --> 00:04:56,759 También 93 00:04:56,759 --> 00:04:59,240 ¿Por qué? 94 00:05:01,500 --> 00:05:02,579 ¿Por qué me han salido 95 00:05:02,579 --> 00:05:03,779 En ese orden tan bonito? 96 00:05:05,120 --> 00:05:06,480 Claro, porque he hecho un 97 00:05:06,480 --> 00:05:07,019 Treeset 98 00:05:07,019 --> 00:05:10,199 Si yo lo cambio a esto y lo hago a 99 00:05:10,199 --> 00:05:14,060 haset, pues me van a salir 100 00:05:14,060 --> 00:05:15,620 de cualquier manera 101 00:05:15,620 --> 00:05:17,480 vale 102 00:05:17,480 --> 00:05:19,500 vamos a ver a ejecutarlo 103 00:05:19,500 --> 00:05:21,180 ahora cambiándolos a un haset 104 00:05:21,180 --> 00:05:23,339 yo no tengo que cambiar nada en mi aplicación 105 00:05:23,339 --> 00:05:24,720 si es que da igual, funcionan igual 106 00:05:24,720 --> 00:05:27,019 de puertas para afuera 107 00:05:27,019 --> 00:05:29,339 ahora 108 00:05:29,339 --> 00:05:31,699 procesos pendientes, aquí magníficos 109 00:05:32,220 --> 00:05:35,360 ahora me han quedado 110 00:05:35,360 --> 00:05:37,339 después de ejecutar 111 00:05:37,339 --> 00:05:38,660 tres 112 00:05:38,660 --> 00:05:41,899 Estos son los que me han quedado pendientes 113 00:05:41,899 --> 00:05:44,939 Y 114 00:05:44,939 --> 00:05:46,759 Estos son en ejecución 115 00:05:46,759 --> 00:05:50,079 Que como veis, no me los ha mostrado por orden 116 00:05:50,079 --> 00:05:51,819 Porque este 117 00:05:51,819 --> 00:05:53,899 Ah bueno, o si 118 00:05:53,899 --> 00:05:54,579 Están por orden 119 00:05:54,579 --> 00:05:57,560 No 120 00:05:57,560 --> 00:05:59,680 Yo creo que ha sido 121 00:05:59,680 --> 00:06:01,079 De puñetera casualidad 122 00:06:01,079 --> 00:06:02,139 Porque los pide 123 00:06:02,139 --> 00:06:04,220 Pero ha sido de casualidad 124 00:06:04,220 --> 00:06:07,600 En ejecución 125 00:06:07,600 --> 00:06:08,879 Yo estoy mandando a ejecutar 126 00:06:08,879 --> 00:06:10,180 Añadiendo a un hashet 127 00:06:10,180 --> 00:06:12,079 Estoy añadiendo un headset 128 00:06:12,079 --> 00:06:14,519 Y se van añadiendo de cualquier manera 129 00:06:14,519 --> 00:06:15,939 ¿Vale? 130 00:06:16,680 --> 00:06:17,959 No, es que lo he cambiado 131 00:06:17,959 --> 00:06:20,980 Ahora, para ver que ahora ya me saca de cualquier manera 132 00:06:20,980 --> 00:06:21,300 Entonces 133 00:06:21,300 --> 00:06:27,360 No, al headset tú vas añadiendo 134 00:06:27,360 --> 00:06:29,199 Y van cayendo en el conjunto en cualquier lado 135 00:06:29,199 --> 00:06:30,839 Y cuando twitteres 136 00:06:30,839 --> 00:06:32,699 Van saliendo de cualquier manera 137 00:06:32,699 --> 00:06:36,699 Imaginaos que voy a 138 00:06:36,699 --> 00:06:38,180 Añadirlos todos 139 00:06:38,180 --> 00:06:40,100 A ver si 140 00:06:40,100 --> 00:06:43,199 Que no me respete el orden 141 00:06:43,199 --> 00:06:45,519 Voy a añadir 9, he añadido 9 ahora 142 00:06:45,519 --> 00:06:48,079 Venga, he añadido 9 143 00:06:48,079 --> 00:06:53,779 En prioridad se me ha quedado solo 1 144 00:06:53,779 --> 00:06:55,360 Y efectivamente 145 00:06:55,360 --> 00:06:57,579 Estos en ejecución 146 00:06:57,579 --> 00:06:59,019 Están mostrados de cualquier manera 147 00:06:59,019 --> 00:07:01,079 ¿Vale? No van por orden de prioridad 148 00:07:01,079 --> 00:07:02,439 Van de cualquier manera 149 00:07:02,439 --> 00:07:05,860 ¿Vale? De hecho me ha mostrado el del 4 150 00:07:05,860 --> 00:07:07,600 Antes que el 9, que no debería 151 00:07:07,600 --> 00:07:08,980 ¿Vale? Entendida, ¿no? 152 00:07:08,980 --> 00:07:11,160 La diferencia en realidad crítica 153 00:07:11,160 --> 00:07:13,519 Entre el HACET y el otro 154 00:07:13,519 --> 00:07:16,009 Vale 155 00:07:16,009 --> 00:07:18,730 Ay, jolines 156 00:07:18,730 --> 00:07:25,379 ¿Qué método nos falta ahora? 157 00:07:26,480 --> 00:07:27,459 Ahora ya sí 158 00:07:27,459 --> 00:07:29,300 Nos vamos al comparador 159 00:07:29,300 --> 00:07:31,639 Listar ejecución 160 00:07:31,639 --> 00:07:34,939 Lista de procesos que se están ejecutando ordenados 161 00:07:34,939 --> 00:07:36,639 Entonces 162 00:07:36,639 --> 00:07:39,459 Método listar ejecución 163 00:07:39,459 --> 00:08:05,399 Ejecución, ejecutar ya lo tenemos aquí, vamos a listar ejecución, listar ejecución, este método tiene que listar todos los que están en ejecución ordenados por pip. 164 00:08:05,399 --> 00:08:07,560 si nos dijeran 165 00:08:07,560 --> 00:08:10,540 ordenados por su orden natural 166 00:08:10,540 --> 00:08:13,860 lo único que habría que hacer 167 00:08:13,860 --> 00:08:15,740 es lo que hemos hecho antes, cambiar esto 168 00:08:15,740 --> 00:08:16,480 a triset 169 00:08:16,480 --> 00:08:19,420 e iterar, ya está 170 00:08:19,420 --> 00:08:20,579 está claro, ¿no? 171 00:08:20,839 --> 00:08:22,839 si este enunciado habría sido 172 00:08:22,839 --> 00:08:25,660 mostrar los procesos que están ejecutando 173 00:08:25,660 --> 00:08:27,540 ordenados por su orden de prioridad 174 00:08:27,540 --> 00:08:28,379 el del comparable 175 00:08:28,379 --> 00:08:31,720 pues listar ejecución sería este mismo 176 00:08:31,720 --> 00:08:33,179 que hemos hecho, este 177 00:08:33,179 --> 00:08:34,500 iterar sin más 178 00:08:34,500 --> 00:08:36,720 cambiando este a triset 179 00:08:36,720 --> 00:08:37,940 Ya lo tendríamos 180 00:08:37,940 --> 00:08:39,039 Ya lo tendríamos 181 00:08:39,039 --> 00:08:44,059 Pero en este caso ya sabemos que 182 00:08:44,059 --> 00:08:45,240 Si 183 00:08:45,240 --> 00:08:47,299 Iteramos 184 00:08:47,299 --> 00:08:50,100 Por el conjunto 185 00:08:50,100 --> 00:08:51,460 De procesos en ejecución 186 00:08:51,460 --> 00:08:54,240 El orden que me va a salir es el de comparable 187 00:08:54,240 --> 00:08:56,019 Entonces, soluciones 188 00:08:56,019 --> 00:08:58,039 Podemos hacer 189 00:08:58,039 --> 00:08:59,419 Un montón de cosas, en realidad 190 00:08:59,419 --> 00:09:01,799 Tenemos millones de maneras de abordar esto 191 00:09:01,799 --> 00:09:06,799 A ver, una manera que se nos ocurre 192 00:09:06,799 --> 00:09:08,100 Hombre, como el trip set tiene 193 00:09:08,100 --> 00:09:09,700 La maravillosa ventaja 194 00:09:09,700 --> 00:09:12,240 que me los mete ordenados 195 00:09:12,240 --> 00:09:14,299 por el orden que yo le diga 196 00:09:14,299 --> 00:09:16,879 pues los procesos en ejecución 197 00:09:16,879 --> 00:09:18,159 que sea un triset 198 00:09:18,159 --> 00:09:23,250 ¿vale? 199 00:09:23,350 --> 00:09:24,529 esto es lo más cómodo de hacer 200 00:09:24,529 --> 00:09:26,769 oye, voy a meterlos en ejecución 201 00:09:26,769 --> 00:09:28,549 ya que me pides un listado ordenado 202 00:09:28,549 --> 00:09:30,409 maravilloso, triset 203 00:09:30,409 --> 00:09:31,789 me va ordenando 204 00:09:31,789 --> 00:09:34,110 pues un triset, magnífico 205 00:09:34,110 --> 00:09:36,629 pero ojo, ya hemos visto 206 00:09:36,629 --> 00:09:38,129 lo acabamos de ver 207 00:09:38,129 --> 00:09:40,090 que si yo hago un triset 208 00:09:40,090 --> 00:09:42,529 el orden con el que me los va a sacar 209 00:09:42,529 --> 00:09:43,889 cuando itere es este. 210 00:09:45,769 --> 00:09:46,250 ¿Vale? 211 00:09:46,409 --> 00:09:47,409 Pero yo quiero otro. 212 00:09:48,250 --> 00:09:50,129 Pues entonces, vamos a hacer un triset 213 00:09:50,129 --> 00:09:51,970 pero le vamos a decir, oye, 214 00:09:52,330 --> 00:09:54,730 para ti, triset, cuando tú insertes, 215 00:09:55,289 --> 00:09:56,490 inserta en este otro 216 00:09:56,490 --> 00:09:57,509 orden que yo te doy. 217 00:09:57,870 --> 00:10:00,570 No en el propio de los procesos, inserta en otro. 218 00:10:01,190 --> 00:10:02,509 Entonces, si tú insertas en otro, 219 00:10:02,509 --> 00:10:04,610 cuando yo recorra los procesos en ejecución, 220 00:10:05,169 --> 00:10:06,210 te van a seguir con ese orden. 221 00:10:07,190 --> 00:10:08,809 Esa sería la opción más sencilla. 222 00:10:09,809 --> 00:10:09,929 ¿Vale? 223 00:10:10,090 --> 00:10:12,950 repito, como lo que yo tengo que 224 00:10:12,950 --> 00:10:13,750 listar ordenado 225 00:10:13,750 --> 00:10:16,490 es este set de aquí 226 00:10:16,490 --> 00:10:18,850 pues me hago un triset y así 227 00:10:18,850 --> 00:10:20,110 ya al iterar me sale ordenado 228 00:10:20,110 --> 00:10:23,110 ¿qué problema tengo aquí si me hago un triset sin nada? 229 00:10:23,669 --> 00:10:24,750 que me va a salir ordenado 230 00:10:24,750 --> 00:10:26,950 cuando itere, está claro, pero me va 231 00:10:26,950 --> 00:10:28,889 a salir ordenado según este 232 00:10:28,889 --> 00:10:30,990 comparable, y ese no lo 233 00:10:30,990 --> 00:10:32,909 puedo cambiar, porque ese es el que usa 234 00:10:32,909 --> 00:10:34,830 el agregar proceso para que estén todos 235 00:10:34,830 --> 00:10:36,110 ordenados, no lo puedo cambiar 236 00:10:36,110 --> 00:10:38,929 ¿cómo soluciono este pequeñito 237 00:10:38,929 --> 00:10:40,970 problema? Pues al triset 238 00:10:40,970 --> 00:10:42,909 le digo, oye tú, no uses el 239 00:10:42,909 --> 00:10:45,049 orden que tiene ese por defecto, 240 00:10:45,230 --> 00:10:46,990 sino usa un criterio 241 00:10:46,990 --> 00:10:47,929 que yo te doy aquí. 242 00:10:48,710 --> 00:10:50,509 Y aquí es donde entra el comparator. 243 00:10:51,350 --> 00:10:52,450 ¿Vale? Aquí es donde entra. 244 00:10:53,330 --> 00:10:54,690 ¿Qué era el comparator? 245 00:10:54,730 --> 00:10:57,009 El comparator era un criterio 246 00:10:57,009 --> 00:10:58,870 de ordenación. No era 247 00:10:58,870 --> 00:11:00,870 un rol, un papel que tiene 248 00:11:00,870 --> 00:11:02,850 que jugar una entidad. Es un criterio 249 00:11:02,850 --> 00:11:05,009 de ordenación. Pues en este 250 00:11:05,009 --> 00:11:07,269 caso vamos a hacer un criterio de ordenación 251 00:11:07,269 --> 00:11:09,750 para asignárselo a triset 252 00:11:09,750 --> 00:11:11,190 y que ordene según ese criterio. 253 00:11:12,429 --> 00:11:13,889 Vale, pues podría hacer yo aquí una clase 254 00:11:13,889 --> 00:11:15,490 anónima de una serie de historias que no 255 00:11:15,490 --> 00:11:17,309 hemos visto y nos hemos metido. 256 00:11:17,710 --> 00:11:18,490 Vamos a hacerlo más fácil. 257 00:11:19,549 --> 00:11:20,970 ¿Qué es un criterio de ordenación? 258 00:11:21,210 --> 00:11:23,610 Pues un criterio de ordenación es una clase 259 00:11:23,610 --> 00:11:25,330 aparte, completamente aparte. 260 00:11:25,549 --> 00:11:27,029 Eso es un criterio de ordenación. 261 00:11:28,909 --> 00:11:29,590 Pues venga, 262 00:11:29,590 --> 00:11:30,789 vamos a hacernos una clase. 263 00:11:31,210 --> 00:11:32,169 Criterio de orden... 264 00:11:32,169 --> 00:11:34,009 ¿Qué? 265 00:11:37,269 --> 00:11:44,429 A ver, pero en el contexto 266 00:11:44,429 --> 00:11:45,690 que tú me estabas preguntando 267 00:11:45,690 --> 00:11:48,350 que era para hacer métodos auxiliares 268 00:11:48,350 --> 00:11:48,850 cosas 269 00:11:48,850 --> 00:11:54,690 Si me lo preguntaste 270 00:11:54,690 --> 00:11:55,649 en relación a esto 271 00:11:55,649 --> 00:11:56,870 es que yo te veo 272 00:11:56,870 --> 00:12:06,870 No, no, no, no, no pasa nada 273 00:12:06,870 --> 00:12:08,850 y de hecho lo ideal sería hacerlo aquí 274 00:12:08,850 --> 00:12:10,230 como una clase anónima 275 00:12:10,230 --> 00:12:11,470 que no sabemos todavía lo que es 276 00:12:11,470 --> 00:12:13,409 es que como este criterio de aquí 277 00:12:13,409 --> 00:12:14,769 solo vale 278 00:12:14,769 --> 00:12:16,590 para meterlo aquí dentro 279 00:12:16,590 --> 00:12:19,269 solo vale para meterlo aquí dentro, es que 280 00:12:19,269 --> 00:12:21,309 en realidad en Java no haría ni falta 281 00:12:21,309 --> 00:12:23,330 hacer una clase para él, yo a la vez 282 00:12:23,330 --> 00:12:25,269 que lo instancio, lo 283 00:12:25,269 --> 00:12:27,409 declaro, y eso es hacer una clase anónima 284 00:12:27,409 --> 00:12:28,870 pero bueno, eso lo dejamos ahí 285 00:12:28,870 --> 00:12:29,990 flotando 286 00:12:29,990 --> 00:12:32,070 si 287 00:12:32,070 --> 00:12:35,509 si, tú lo harías como una clase 288 00:12:35,509 --> 00:12:37,070 dentro del mismo fichero, supongo 289 00:12:37,070 --> 00:12:39,289 no pasa nada, lo que pasa es que no podrían ser las dos 290 00:12:39,289 --> 00:12:41,210 public, pero no pasa nada cuando sean las dos public 291 00:12:41,210 --> 00:12:44,509 que en el mismo fichero 292 00:12:44,509 --> 00:12:45,970 no puede haber dos clases 293 00:12:45,970 --> 00:12:48,590 públicas, porque como el fichero 294 00:12:48,590 --> 00:12:50,250 tiene que llamar como la clase pública 295 00:12:50,250 --> 00:12:55,129 Yo lo que hice fue implementar 296 00:12:55,129 --> 00:12:57,129 el proceso comparable y comparado 297 00:12:57,129 --> 00:12:59,529 Ah, vale 298 00:12:59,529 --> 00:13:01,049 que la propia clase 299 00:13:01,049 --> 00:13:03,029 proceso además era criterio de 300 00:13:03,029 --> 00:13:05,250 comparación, raro pero sí 301 00:13:05,250 --> 00:13:07,230 A ver, raro 302 00:13:07,230 --> 00:13:08,970 porque proceso se supone que 303 00:13:08,970 --> 00:13:10,970 tiene su uso, que es yo soy un proceso 304 00:13:10,970 --> 00:13:13,070 me describo patatín, no soy un 305 00:13:13,070 --> 00:13:14,769 criterio, pero bueno, que también 306 00:13:14,769 --> 00:13:16,970 puede funcionar como criterio si presenta comparator 307 00:13:16,970 --> 00:13:19,029 también funciona como criterio, vale, es una solución 308 00:13:19,029 --> 00:13:21,330 es una forma de sobrevivir muy digna 309 00:13:21,330 --> 00:13:22,350 y muy elegante 310 00:13:22,350 --> 00:13:25,149 vale, pues 311 00:13:25,149 --> 00:13:27,049 venga, para que esto sea 312 00:13:27,049 --> 00:13:28,309 un criterio 313 00:13:28,309 --> 00:13:30,990 sea un criterio, tiene que 314 00:13:30,990 --> 00:13:32,389 implementar 315 00:13:32,389 --> 00:13:34,350 comparator 316 00:13:34,350 --> 00:13:38,960 porque comparator es la interfaz 317 00:13:38,960 --> 00:13:41,059 que tienen que implementar todos aquellos que quieran 318 00:13:41,059 --> 00:13:42,460 ser criterio de 319 00:13:42,460 --> 00:13:43,919 ordenación 320 00:13:43,919 --> 00:13:47,559 vale, este criterio de ordenación 321 00:13:47,559 --> 00:13:48,720 que va a ordenar entre sí 322 00:13:48,720 --> 00:13:50,620 va a ordenar procesos 323 00:13:50,620 --> 00:13:52,240 pues venga 324 00:13:52,240 --> 00:13:54,820 si va a ordenar procesos 325 00:13:54,820 --> 00:13:57,779 el comparator que sea de proceso 326 00:13:57,779 --> 00:13:59,659 y ahora 327 00:13:59,659 --> 00:14:02,000 si esto es un criterio de ordenación 328 00:14:02,000 --> 00:14:04,080 que va a ordenar procesos 329 00:14:04,080 --> 00:14:07,639 necesita implementar 330 00:14:07,639 --> 00:14:09,179 el método de comparator 331 00:14:09,179 --> 00:14:11,399 que es este 332 00:14:11,399 --> 00:14:13,820 entonces este es un método 333 00:14:13,820 --> 00:14:16,179 Que te compara este proceso 334 00:14:16,179 --> 00:14:17,519 Con este otro 335 00:14:17,519 --> 00:14:19,240 Este con este 336 00:14:19,240 --> 00:14:21,299 Y te dice cual va antes 337 00:14:21,299 --> 00:14:24,360 Pues aquí si queremos que vayan ordenados por pit 338 00:14:24,360 --> 00:14:26,299 Pues esto sería 339 00:14:26,299 --> 00:14:28,320 O uno punto get pit 340 00:14:28,320 --> 00:14:29,500 Menos 341 00:14:29,500 --> 00:14:34,240 O dos punto get pit 342 00:14:34,240 --> 00:14:37,679 Vale, esto es un criterio de ordenación 343 00:14:37,679 --> 00:14:38,539 Es un criterio 344 00:14:38,539 --> 00:14:40,120 Que va por libre 345 00:14:40,120 --> 00:14:43,440 Esto no es un papel 346 00:14:43,440 --> 00:14:44,779 De ser comparable 347 00:14:44,779 --> 00:14:47,659 que lo juega un proceso 348 00:14:47,659 --> 00:14:49,379 que él es comparable con otro 349 00:14:49,379 --> 00:14:50,320 y que por tanto 350 00:14:50,320 --> 00:14:52,240 tienes que compare tú 351 00:14:52,240 --> 00:14:54,100 esto es un criterio de prioridad 352 00:14:54,100 --> 00:14:56,460 un criterio de ordenación entre procesos 353 00:14:56,460 --> 00:14:58,500 ¿ese criterio para qué me vale? 354 00:14:58,600 --> 00:14:59,899 pues para entregárselo a gente 355 00:14:59,899 --> 00:15:01,659 para que ordene según ese criterio 356 00:15:01,659 --> 00:15:02,779 para entregárselo a gente 357 00:15:02,779 --> 00:15:06,240 ¿vale? pues ¿a qué gente se lo puede entregar? 358 00:15:06,360 --> 00:15:07,279 pues por ejemplo al triset 359 00:15:07,279 --> 00:15:09,399 por ejemplo al triset 360 00:15:09,399 --> 00:15:11,100 se lo puede entregar y decir 361 00:15:11,100 --> 00:15:11,740 oye tú 362 00:15:11,740 --> 00:15:14,179 ordena 363 00:15:14,179 --> 00:15:18,269 según este criterio 364 00:15:18,269 --> 00:15:22,100 ala, ya está 365 00:15:22,100 --> 00:15:24,679 ahora mi triset es un conjunto 366 00:15:24,679 --> 00:15:26,899 que cuando yo le meta los procesos 367 00:15:26,899 --> 00:15:28,700 los va a ordenar según este 368 00:15:28,700 --> 00:15:29,980 criterio que yo lo estoy pasando 369 00:15:29,980 --> 00:15:36,129 ¿vale? ignorando por tanto 370 00:15:36,129 --> 00:15:38,450 el papel de comparable 371 00:15:38,450 --> 00:15:39,710 que tiene este, ignorando 372 00:15:39,710 --> 00:15:42,230 lo va a ordenar según este 373 00:15:42,230 --> 00:15:44,389 el triset 374 00:15:44,389 --> 00:15:45,570 lo va a ordenar según ese 375 00:15:45,570 --> 00:15:49,639 con lo cual ahora mi listar ejecución 376 00:15:49,639 --> 00:15:51,240 este de aquí, este que yo he hecho aquí 377 00:15:51,240 --> 00:15:53,320 Listar ejecución 378 00:15:53,320 --> 00:15:56,899 Ya está, me los va a sacar por ese orden 379 00:15:56,899 --> 00:16:01,049 Vamos a verlo 380 00:16:01,049 --> 00:16:02,769 Entonces este que he dejado aquí vacío 381 00:16:02,769 --> 00:16:04,669 Es que no tengo ni que hacerlo porque ya lo tenía hecho 382 00:16:04,669 --> 00:16:07,429 Este ya lo tengo hecho, es el que he hecho antes 383 00:16:07,429 --> 00:16:11,250 Vamos a ver 384 00:16:11,250 --> 00:16:16,830 Estos son los procesos pendientes 385 00:16:16,830 --> 00:16:17,789 Inicialmente 386 00:16:17,789 --> 00:16:20,549 Ordenados por prioridad, muy bien 387 00:16:20,549 --> 00:16:23,149 Ejecutado 9 388 00:16:23,149 --> 00:16:24,129 Me ha quedado esto 389 00:16:24,129 --> 00:16:27,049 Y ahora, los de ejecución 390 00:16:27,049 --> 00:16:28,970 Efectivamente me salen 391 00:16:28,970 --> 00:16:30,330 ordenados por pit 392 00:16:30,330 --> 00:16:33,029 me salen ordenados por pit 393 00:16:33,029 --> 00:16:34,370 los de ejecución 394 00:16:34,370 --> 00:16:37,330 me salen ordenados por pit 395 00:16:37,330 --> 00:16:38,970 porque los he ido metiendo 396 00:16:38,970 --> 00:16:40,250 cada vez que los ejecutaba 397 00:16:40,250 --> 00:16:43,129 cada vez que los ejecutaba 398 00:16:43,129 --> 00:16:44,409 los he ido metiendo 399 00:16:44,409 --> 00:16:45,950 a un triset 400 00:16:45,950 --> 00:16:49,090 los he ido metiendo a un triset 401 00:16:49,090 --> 00:16:51,210 cuyo criterio de ordenación 402 00:16:51,210 --> 00:16:52,429 es ese 403 00:16:52,429 --> 00:16:54,870 pues entonces si yo 404 00:16:54,870 --> 00:16:56,289 ya me salen ordenados por ahí 405 00:16:56,289 --> 00:17:10,950 Es que es otra idea distinta 406 00:17:10,950 --> 00:17:12,490 Vale 407 00:17:12,490 --> 00:17:15,130 A ver, tú puedes decir 408 00:17:15,130 --> 00:17:16,809 Oye, este además de comparable 409 00:17:16,809 --> 00:17:18,789 Que además simplemente 410 00:17:18,789 --> 00:17:20,329 Comparator 411 00:17:20,329 --> 00:17:23,369 Lo que hizo él para no hacer una clase aparte 412 00:17:23,369 --> 00:17:24,990 Vale 413 00:17:24,990 --> 00:17:26,289 Entonces 414 00:17:26,289 --> 00:17:29,529 Entonces tendrías que implementar el compare aquí 415 00:17:29,529 --> 00:17:31,750 Tendrías que implementar el compare 416 00:17:31,750 --> 00:17:54,670 Y luego aquí le pasarías el, le pasarías el new planificador, te va a funcionar igual, lo que pasa es que tu diseño del proyecto, de la aplicación es muy fea y muy chunga, porque proceso es un proceso, proceso no es un criterio de comparación, es un proceso, ¿vale? 417 00:17:54,670 --> 00:17:58,470 es un proceso 418 00:17:58,470 --> 00:18:00,150 y tiene su uso 419 00:18:00,150 --> 00:18:01,990 y no es un criterio de comparación 420 00:18:01,990 --> 00:18:04,589 entonces proceso es un proceso 421 00:18:04,589 --> 00:18:06,650 que puede ser comparable con otros 422 00:18:06,650 --> 00:18:07,369 etcétera 423 00:18:07,369 --> 00:18:09,910 pero no es un criterio de comparación 424 00:18:09,910 --> 00:18:12,049 entonces estás como mezclando ideas 425 00:18:12,049 --> 00:18:14,029 que lo hace todo como más complejo de entender 426 00:18:14,029 --> 00:18:16,430 pero entiendes que en realidad 427 00:18:16,430 --> 00:18:17,990 funcionaría igual porque 428 00:18:17,990 --> 00:18:20,769 este proceso ahora aparte de ser un proceso 429 00:18:20,769 --> 00:18:22,869 también es un criterio 430 00:18:22,869 --> 00:18:24,529 de comparación por libre 431 00:18:24,529 --> 00:18:26,170 vale 432 00:18:26,170 --> 00:18:28,930 entonces bueno, podrías, pero es más 433 00:18:28,930 --> 00:18:29,690 como más feo 434 00:18:29,690 --> 00:18:32,769 entonces 435 00:18:32,769 --> 00:18:47,460 entonces, mejor que quede 436 00:18:47,460 --> 00:18:49,319 aparte, esto, su objetivo, ser 437 00:18:49,319 --> 00:18:51,299 criterio de comparación, pues se queda aparte 438 00:18:51,299 --> 00:18:53,339 claro, es cierto que 439 00:18:53,339 --> 00:18:54,759 estamos haciendo una clase 440 00:18:54,759 --> 00:18:56,779 solo para esto 441 00:18:56,779 --> 00:18:59,279 que es muy poquito, entonces una clase 442 00:18:59,279 --> 00:19:01,380 solo para esto, es muy poquito 443 00:19:01,380 --> 00:19:03,339 pero por eso existe 444 00:19:03,339 --> 00:19:05,420 el concepto de clase 445 00:19:05,420 --> 00:19:06,519 anónima 446 00:19:06,519 --> 00:19:08,240 que se llama 447 00:19:08,240 --> 00:19:09,480 ¿vale? 448 00:19:10,640 --> 00:19:12,900 que eso está una buena oportunidad para mencionarlo 449 00:19:12,900 --> 00:19:13,420 porque ahora 450 00:19:13,420 --> 00:19:16,200 la ventaja de la IA es que vosotros 451 00:19:16,200 --> 00:19:18,660 le preguntáis cosas y él los resuelve 452 00:19:18,660 --> 00:19:20,180 cosas muy estupendamente 453 00:19:20,180 --> 00:19:21,640 o pseudo estupendamente 454 00:19:21,640 --> 00:19:24,039 pero claro, os va sacando muchas cosas 455 00:19:24,039 --> 00:19:26,420 pues que no conocéis, que tenéis que averiguar 456 00:19:26,420 --> 00:19:28,380 hay millones de cosas 457 00:19:28,380 --> 00:19:30,500 entonces pues muchas cosas 458 00:19:30,500 --> 00:19:31,920 las hará con clases anónimas 459 00:19:31,920 --> 00:19:34,440 ¿vale? ¿qué es una clase anónima en realidad? 460 00:19:34,599 --> 00:19:36,119 ¿en qué situación nos pide el cuerpo 461 00:19:36,119 --> 00:19:37,019 con una clase anónima? 462 00:19:38,039 --> 00:19:39,539 Pues cuando tienes que usar un objeto 463 00:19:39,539 --> 00:19:42,420 ¿vale? para pasárselo a otro 464 00:19:42,420 --> 00:19:44,400 pero es que solo lo usas ahí 465 00:19:44,400 --> 00:19:45,940 solo lo vas a usar ahí 466 00:19:45,940 --> 00:19:48,519 ese objeto. Entonces solo lo usas 467 00:19:48,519 --> 00:19:50,519 para hacer news de ese objeto, para hacer news 468 00:19:50,519 --> 00:19:52,700 luego ese objeto nunca vuelves a acceder 469 00:19:52,700 --> 00:19:54,519 para cambiarle propiedades ni para hacer 470 00:19:54,519 --> 00:19:56,380 nada. Con ese objeto solo quieres 471 00:19:56,380 --> 00:19:58,579 hacer un new para pasárselo a otro 472 00:19:58,579 --> 00:20:00,400 y ya está, y de ese objeto 473 00:20:00,400 --> 00:20:02,039 ya no vale para nada más. Luego ese objeto 474 00:20:02,039 --> 00:20:04,180 no es como alumno, tú creas un alumno 475 00:20:04,180 --> 00:20:05,720 alumno a new alumno 476 00:20:05,720 --> 00:20:07,940 y luego con ese alumno a le pones la edad 477 00:20:07,940 --> 00:20:09,180 le haces no se cuantos 478 00:20:09,180 --> 00:20:11,559 pero en este ejemplo 479 00:20:11,559 --> 00:20:14,240 este objeto comparador 480 00:20:14,240 --> 00:20:16,259 solo lo queremos 481 00:20:16,259 --> 00:20:17,319 solo lo queremos 482 00:20:17,319 --> 00:20:20,279 para instanciarlo y pasárselo 483 00:20:20,279 --> 00:20:20,619 a este 484 00:20:20,619 --> 00:20:23,880 y nunca jamás vamos a 485 00:20:23,880 --> 00:20:25,720 acceder a ese objeto para nada 486 00:20:25,720 --> 00:20:27,180 ni hacer nada más con él ni nada 487 00:20:27,180 --> 00:20:29,579 entonces estamos aquí 488 00:20:29,579 --> 00:20:30,819 declarando una clase 489 00:20:30,819 --> 00:20:33,000 que aparece ahí en la aplicación 490 00:20:33,000 --> 00:20:35,400 que en estos proyectos 491 00:20:35,400 --> 00:20:36,980 que tienen 10 clases no pasa nada 492 00:20:36,980 --> 00:20:39,099 pero un proyecto normal que tiene 493 00:20:39,099 --> 00:20:40,660 10.000, pues hombre 494 00:20:40,660 --> 00:20:43,079 hacer una más, pues que 495 00:20:43,079 --> 00:20:45,200 pereza, ¿no? Entonces ahí podría 496 00:20:45,200 --> 00:20:47,099 entrar el concepto de clase anónima 497 00:20:47,099 --> 00:20:49,339 que es 498 00:20:49,339 --> 00:20:51,160 en el momento en el que yo 499 00:20:51,160 --> 00:20:53,220 instancio un objeto, que en este 500 00:20:53,220 --> 00:20:54,339 caso sería aquí 501 00:20:54,339 --> 00:20:58,630 sería aquí 502 00:20:58,630 --> 00:21:01,309 en el momento en el que yo lo instancio 503 00:21:01,309 --> 00:21:02,690 en ese momento 504 00:21:02,690 --> 00:21:04,930 voy además a declarar la clase 505 00:21:04,930 --> 00:21:07,049 voy a declararla porque es cortita y pequeñita 506 00:21:07,049 --> 00:21:09,210 voy a declararla aquí a la vez que la instancia 507 00:21:09,210 --> 00:21:11,109 y no la pongo ni nombre 508 00:21:11,109 --> 00:21:13,029 me limito a declararla 509 00:21:13,029 --> 00:21:14,549 es decir, meto aquí 510 00:21:14,549 --> 00:21:16,490 este código 511 00:21:16,490 --> 00:21:19,390 que es un código pequeñito 512 00:21:19,390 --> 00:21:21,210 meto ahí ese código 513 00:21:21,210 --> 00:21:22,950 y ya está, con lo cual 514 00:21:22,950 --> 00:21:25,289 no necesito una clase aparte 515 00:21:25,289 --> 00:21:26,710 lo meto ahí ese código 516 00:21:26,710 --> 00:21:28,410 y no le doy ni nombre 517 00:21:28,410 --> 00:21:31,069 por eso se llama anónimo 518 00:21:31,069 --> 00:21:33,269 ¿Vale? Entonces 519 00:21:33,269 --> 00:21:35,950 Estos países se me hacen más grandes 520 00:21:35,950 --> 00:21:37,470 Quedaría una cosa 521 00:21:37,470 --> 00:21:39,369 Como esta 522 00:21:39,369 --> 00:21:50,359 Quedaría una cosa como esta 523 00:21:50,359 --> 00:21:54,119 New 524 00:21:54,119 --> 00:21:59,680 Comparator 525 00:21:59,680 --> 00:22:01,720 De proceso 526 00:22:01,720 --> 00:22:04,940 Y aquí 527 00:22:04,940 --> 00:22:10,220 Me haría 528 00:22:10,220 --> 00:22:14,119 Yo proceso 529 00:22:14,119 --> 00:22:17,180 Y aquí me hago 530 00:22:17,180 --> 00:22:19,180 el método este 531 00:22:19,180 --> 00:22:28,980 vale 532 00:22:28,980 --> 00:22:30,500 y aquí 533 00:22:30,500 --> 00:22:35,160 triset new comparator 534 00:22:35,160 --> 00:22:36,079 proceso 535 00:22:36,079 --> 00:22:38,980 aquí 536 00:22:38,980 --> 00:22:41,720 me faltará un punticom algo en algún sitio 537 00:22:41,720 --> 00:22:43,299 donde me sale el 538 00:22:43,299 --> 00:22:45,359 el rojo este 539 00:22:45,359 --> 00:22:46,819 tokens 540 00:22:46,819 --> 00:22:49,140 comparator procesos 541 00:22:49,140 --> 00:22:51,759 o será esto que me falta, ah, estos paréntesis me faltaban 542 00:22:51,759 --> 00:22:52,799 vale 543 00:22:52,799 --> 00:22:54,440 esto es una clase anónima 544 00:22:54,440 --> 00:22:57,039 no asusta, no tiene que asustaros 545 00:22:57,039 --> 00:22:57,740 no pasa nada 546 00:22:57,740 --> 00:23:01,259 entonces, fijaos 547 00:23:01,259 --> 00:23:03,339 yo tengo que pasarle a triset 548 00:23:03,339 --> 00:23:05,700 algo que implemente esto 549 00:23:05,700 --> 00:23:07,819 puedo hacerme 550 00:23:07,819 --> 00:23:09,960 una clase que implementa eso 551 00:23:09,960 --> 00:23:11,480 hacer su código 552 00:23:11,480 --> 00:23:13,720 y luego aquí instanciarlo 553 00:23:13,720 --> 00:23:14,819 vale 554 00:23:14,819 --> 00:23:17,819 pero hombre, ya es otra clase aparte 555 00:23:18,380 --> 00:23:19,740 si total 556 00:23:19,740 --> 00:23:21,059 solo la uso 557 00:23:21,059 --> 00:23:23,059 es muy pequeñita 558 00:23:23,059 --> 00:23:26,220 solo la uso aquí, no es una entidad de mi aplicación 559 00:23:26,220 --> 00:23:28,079 no es una entidad de mi aplicación 560 00:23:28,079 --> 00:23:30,440 que entre mi jerarquía de clases 561 00:23:30,440 --> 00:23:32,180 ni nada, solo la uso 562 00:23:32,180 --> 00:23:34,119 aquí, para instanciarla y pasárselo 563 00:23:34,119 --> 00:23:36,099 ya está, pues en el momento de 564 00:23:36,099 --> 00:23:38,500 instanciarla, en el momento de instanciarla voy a declararla 565 00:23:38,500 --> 00:23:40,420 vale, en el momento de instanciarla 566 00:23:40,420 --> 00:23:42,140 la declaro, entonces yo pongo 567 00:23:42,140 --> 00:23:43,920 oye tú, que voy a instanciar, vale 568 00:23:43,920 --> 00:23:46,220 ¿qué vas a instanciar? vas a instanciar 569 00:23:46,220 --> 00:23:48,460 una instancia que implementa esto 570 00:23:48,460 --> 00:23:50,380 que implementa 571 00:23:50,380 --> 00:23:52,460 esto, no le das ni nombre 572 00:23:52,460 --> 00:23:53,700 no le das ni nombre 573 00:23:53,700 --> 00:23:55,440 y aquí entre llaves 574 00:23:55,440 --> 00:23:58,079 pones el código de esa clase 575 00:23:58,079 --> 00:23:59,299 ya está, pones el código 576 00:23:59,299 --> 00:24:04,200 bueno, pues si lo hacemos así, nos ahorramos 577 00:24:04,200 --> 00:24:04,940 la otra clase 578 00:24:04,940 --> 00:24:09,430 entonces las clases anónimas se usan un montón 579 00:24:09,430 --> 00:24:11,390 en realidad, cuando tienes que pasar 580 00:24:11,390 --> 00:24:13,710 una instancia de un objeto a alguien 581 00:24:13,710 --> 00:24:15,829 ese objeto 582 00:24:15,829 --> 00:24:17,490 pertenece a una clase cortita 583 00:24:17,490 --> 00:24:19,269 pequeñita 584 00:24:19,269 --> 00:24:22,029 pues la declaras en el momento de pasársela 585 00:24:22,029 --> 00:24:24,009 y no tienes que tener esa clase aparte todo el rato 586 00:24:24,009 --> 00:24:26,089 eso sí, si lo estás haciendo 587 00:24:26,089 --> 00:24:28,190 todo el rato, pues repetir 588 00:24:28,190 --> 00:24:30,029 esto mil veces, es un poco 589 00:24:30,029 --> 00:24:31,490 tonto repetirlo mil veces 590 00:24:31,490 --> 00:24:34,009 pues entonces ya te la haces aparte y ya está 591 00:24:34,009 --> 00:24:36,109 pero aquí, que solo 592 00:24:36,109 --> 00:24:38,210 la vamos a usar aquí, pues la declaro aquí 593 00:24:38,210 --> 00:24:43,849 a la vez que la instancia y se acabó 594 00:24:43,849 --> 00:24:44,869 ¿vale? bueno, pues 595 00:24:44,869 --> 00:24:49,549 ¿en dónde? 596 00:24:54,890 --> 00:24:56,250 sí, efectivamente 597 00:24:56,250 --> 00:24:58,069 claro, sí, cada vez 598 00:24:58,069 --> 00:25:00,089 que tú tienes que pasar una instancia 599 00:25:00,089 --> 00:25:01,730 de algo a alguien 600 00:25:01,730 --> 00:25:04,069 una instancia de un objeto, pues 601 00:25:04,069 --> 00:25:05,450 lo puedes pasar como new 602 00:25:05,450 --> 00:25:07,970 eso que he implementado y declaro en ese 603 00:25:07,970 --> 00:25:09,930 momento, ¿vale? Siempre 604 00:25:09,930 --> 00:25:11,529 lo que pasa es que si la clase es muy larga 605 00:25:11,529 --> 00:25:13,450 no lo haces, porque entonces te queda 606 00:25:13,450 --> 00:25:15,910 entre paréntesis una declaración 607 00:25:15,910 --> 00:25:17,769 muy larga, porque si la clase tiene muchas cosas 608 00:25:17,769 --> 00:25:19,930 no lo haces, ¿vale? Pero para cosas como 609 00:25:19,930 --> 00:25:21,470 esta, sí que lo haces 610 00:25:21,470 --> 00:25:28,279 esto sería con 611 00:25:28,279 --> 00:25:29,400 clase 612 00:25:29,400 --> 00:25:32,380 anónima 613 00:25:32,380 --> 00:25:34,440 bueno, para que 614 00:25:34,440 --> 00:25:37,700 ya no os asuste cuando lo veáis, ¿vale? 615 00:25:37,720 --> 00:25:39,880 Que lo veréis mucho si le pedís cosas a las IAS. 616 00:25:42,029 --> 00:25:42,349 Vale. 617 00:25:44,170 --> 00:25:45,069 Y prácticamente 618 00:25:45,069 --> 00:25:47,049 se ha acabado el ejercicio, ¿no? Ah, bueno, nos falta 619 00:25:47,049 --> 00:25:47,349 este. 620 00:25:48,769 --> 00:25:50,970 Bueno, este otro. Si no lo habéis hecho 621 00:25:50,970 --> 00:25:53,069 con un triset dándole 622 00:25:53,069 --> 00:25:54,269 criterio de ordenación, 623 00:25:55,250 --> 00:25:56,990 pues se puede hacer de muchas maneras. 624 00:25:57,849 --> 00:25:58,970 También se puede hacer, pues 625 00:25:58,970 --> 00:26:00,609 eso, paso 626 00:26:00,609 --> 00:26:02,630 mi conjunto, yo no puedo 627 00:26:02,630 --> 00:26:05,190 ordenar un conjunto, no puedo hacer de ese conjunto 628 00:26:05,190 --> 00:26:07,069 hacer un sort, no puedo 629 00:26:07,069 --> 00:26:09,470 porque los conjuntos no pueden ordenarse 630 00:26:09,470 --> 00:26:11,109 pero puedo hacerme 631 00:26:11,109 --> 00:26:13,190 una lista, una lista 632 00:26:13,190 --> 00:26:15,309 nueva limpia, añadir 633 00:26:15,309 --> 00:26:17,210 con add all todos los 634 00:26:17,210 --> 00:26:19,029 de ese conjunto, añadirlo y ordenar 635 00:26:19,029 --> 00:26:20,910 esa lista con ese criterio y ya está 636 00:26:20,910 --> 00:26:23,009 esa sería otra forma sencilla 637 00:26:23,009 --> 00:26:24,730 de hacer ese método 638 00:26:24,730 --> 00:26:27,250 de hacer el método de volver lista 639 00:26:27,250 --> 00:26:29,309 ordenada, añadirlos 640 00:26:29,309 --> 00:26:31,130 todos a una lista nueva, todos 641 00:26:31,130 --> 00:26:32,690 los del conjunto de ejecución 642 00:26:32,690 --> 00:26:35,109 y ahora ya esa lista llamarla 643 00:26:35,109 --> 00:26:37,410 ordenarla con sort, con el criterio 644 00:26:37,410 --> 00:26:40,269 nuevo. Y 645 00:26:40,269 --> 00:26:42,769 si no habéis hecho un triset, pues esa sería 646 00:26:42,769 --> 00:26:47,519 la manera. Y ahora ya el último que nos 647 00:26:47,519 --> 00:26:49,240 queda. El abortar proceso 648 00:26:49,240 --> 00:26:57,130 este de aquí. Y aquí me falta 649 00:26:57,130 --> 00:26:59,829 esto. 650 00:27:00,549 --> 00:27:02,009 Y me sobra esto. 651 00:27:03,009 --> 00:27:04,130 No, algo me falta aquí. 652 00:27:05,829 --> 00:27:07,309 Este de donde está cerrando. 653 00:27:09,210 --> 00:27:10,269 New triset. 654 00:27:10,269 --> 00:27:17,470 Como que no está 655 00:27:17,470 --> 00:27:18,930 Ah vale, me falta 656 00:27:18,930 --> 00:27:25,319 No, no, no 657 00:27:25,319 --> 00:27:27,160 La clase anónima esta 658 00:27:27,160 --> 00:27:28,279 Que hay aquí algo que 659 00:27:28,279 --> 00:27:30,380 No estoy haciendo bien 660 00:27:30,380 --> 00:27:38,650 Este, no, no es este 661 00:27:38,650 --> 00:27:40,529 Es este de aquí 662 00:27:40,529 --> 00:27:46,210 No sé que me falta aquí 663 00:27:46,210 --> 00:28:20,269 Ah, me faltaba importar el comparator este. Vale, vale, me faltaba importar... Vale, ya está. Vale, estaba bien. Bueno, pues el otro método que nos faltaba, el de abortar proceso. Aquí. Voy... Eliminar por PID. 664 00:28:20,269 --> 00:28:29,359 Vale, pues este es 665 00:28:29,359 --> 00:28:33,019 Eliminar 666 00:28:33,019 --> 00:28:33,420 De 667 00:28:33,420 --> 00:28:39,160 De la lista de ejecución 668 00:28:39,160 --> 00:28:40,859 De procesos, es decir 669 00:28:40,859 --> 00:28:42,220 Esto idealmente sería 670 00:28:42,220 --> 00:28:44,259 Ejecución 671 00:28:44,259 --> 00:28:49,200 Remove 672 00:28:49,200 --> 00:29:01,960 Vale, aquí 673 00:29:01,960 --> 00:29:04,200 Cuidado 674 00:29:04,200 --> 00:29:06,039 Para eliminar por 675 00:29:06,039 --> 00:29:06,380 PID 676 00:29:06,380 --> 00:29:11,890 A ver, ¿qué os ocurre? 677 00:29:11,890 --> 00:29:16,460 Como vamos a acabar ahora 678 00:29:16,460 --> 00:29:18,500 Luego ya que haga las preguntas que sean 679 00:29:18,500 --> 00:29:19,900 ¿Vale? Pero vamos a intentar acabar 680 00:29:19,900 --> 00:29:22,200 Porque esto que viene aquí también es importante 681 00:29:22,200 --> 00:29:25,200 Si tú haz como que haces caso 682 00:29:25,200 --> 00:29:28,819 Vale, a ver, cuidado 683 00:29:28,819 --> 00:29:30,579 Aquí esto es eliminar por pit 684 00:29:30,579 --> 00:29:32,920 Entonces aquí nos llama, nos pide un remove 685 00:29:32,920 --> 00:29:35,480 Cuidado, depende de si yo he hecho 686 00:29:35,480 --> 00:29:36,500 Triset o haset 687 00:29:36,500 --> 00:29:39,220 Si este fuera 688 00:29:39,220 --> 00:29:40,519 Un haset 689 00:29:40,519 --> 00:29:43,220 Ningún problema 690 00:29:43,220 --> 00:29:45,680 Porque yo tengo un hash set de equal 691 00:29:45,680 --> 00:29:47,160 Por 692 00:29:47,160 --> 00:29:48,619 Pit 693 00:29:48,619 --> 00:29:50,400 ¿Vale? 694 00:29:50,799 --> 00:29:53,200 Luego si la estructura fuera un hash set 695 00:29:53,200 --> 00:29:55,119 ¿Dónde está el? 696 00:29:55,299 --> 00:29:55,559 Aquí 697 00:29:55,559 --> 00:30:00,059 Si ejecución 698 00:30:00,059 --> 00:30:02,660 Si ejecución 699 00:30:02,660 --> 00:30:05,559 Fuera hash set 700 00:30:05,559 --> 00:30:07,380 Esto me vale 701 00:30:07,380 --> 00:30:09,680 Me hago un proceso con ese pit 702 00:30:09,680 --> 00:30:10,359 Y listo 703 00:30:10,359 --> 00:30:12,380 Y lo mando a borrar 704 00:30:12,380 --> 00:30:18,250 Proceso 705 00:30:18,250 --> 00:30:21,990 p.setPid 706 00:30:21,990 --> 00:30:29,960 newProceso 707 00:30:29,960 --> 00:30:31,960 con cualquier valor 708 00:30:31,960 --> 00:30:33,319 me da lo mismo, vale 709 00:30:33,319 --> 00:30:35,039 vale, es decir 710 00:30:35,039 --> 00:30:37,759 si los métodos en ejecución 711 00:30:37,759 --> 00:30:38,940 estuvieran en un hashSet 712 00:30:38,940 --> 00:30:41,119 esto es suficiente 713 00:30:41,119 --> 00:30:43,400 porque remove me va a borrar 714 00:30:43,400 --> 00:30:46,180 uno igual a este 715 00:30:46,180 --> 00:30:47,700 e igual a ese significa 716 00:30:47,700 --> 00:30:49,240 igual en pid, porque el hashSet 717 00:30:49,240 --> 00:30:51,660 mira el hasco de equals que está hecho por pid 718 00:30:51,660 --> 00:30:53,359 vale, ningún problema 719 00:30:53,359 --> 00:30:56,740 si yo quiero borrar un proceso con ese pit 720 00:30:56,740 --> 00:30:58,980 y lo he hecho con un haset 721 00:30:58,980 --> 00:31:01,660 y he puesto el hasco de equals por pit 722 00:31:01,660 --> 00:31:02,500 ya estaría 723 00:31:02,500 --> 00:31:05,059 pero si yo lo he hecho con triset 724 00:31:05,059 --> 00:31:08,579 para hacer esto de la ordenación 725 00:31:08,579 --> 00:31:10,359 pasarle un criterio de ordenación 726 00:31:10,359 --> 00:31:11,619 y que me lo saque yo ordenado 727 00:31:11,619 --> 00:31:13,319 o lo he hecho un triset porque me ha dado la gana 728 00:31:13,319 --> 00:31:13,920 lo que sea 729 00:31:13,920 --> 00:31:22,000 si los procesos en ejecución 730 00:31:22,000 --> 00:31:27,500 ejecución 731 00:31:27,500 --> 00:31:31,160 fuera 732 00:31:31,160 --> 00:31:34,089 Triset 733 00:31:34,089 --> 00:31:36,609 Lo de arriba 734 00:31:36,609 --> 00:31:38,329 No vale 735 00:31:38,329 --> 00:31:47,509 ¿Verdad que lo de arriba no vale? 736 00:31:48,089 --> 00:31:49,970 ¿Por qué? Porque si yo he hecho un triset 737 00:31:49,970 --> 00:31:51,750 Ah bueno 738 00:31:51,750 --> 00:31:53,089 Vale si le he dado, depende 739 00:31:53,089 --> 00:31:54,230 Vale 740 00:31:54,230 --> 00:31:57,769 En función del criterio que yo le haya puesto 741 00:31:57,769 --> 00:31:58,970 De comparación 742 00:31:58,970 --> 00:32:01,130 Como le he puesto por pi 743 00:32:01,130 --> 00:32:03,369 Para el triset 744 00:32:03,369 --> 00:32:04,690 La igualdad es por pi 745 00:32:04,690 --> 00:32:06,250 Luego valdría también 746 00:32:06,250 --> 00:32:07,430 ¿Vale? 747 00:32:08,769 --> 00:32:09,589 Valdría también 748 00:32:09,589 --> 00:32:12,230 Si el criterio que usara el triset 749 00:32:12,230 --> 00:32:14,490 Si el criterio que usara el triset 750 00:32:14,490 --> 00:32:15,369 Fuera este 751 00:32:15,369 --> 00:32:20,269 Fuera este, el de 752 00:32:20,269 --> 00:32:22,630 Prioridad y duración, no valdría 753 00:32:22,630 --> 00:32:23,890 Luego esto que he puesto aquí 754 00:32:23,890 --> 00:32:25,230 A ver 755 00:32:25,230 --> 00:32:27,470 ¿Dónde está aquí? 756 00:32:29,589 --> 00:32:33,859 Aquí, esto de aquí 757 00:32:33,859 --> 00:32:34,900 Fuera triset 758 00:32:34,900 --> 00:32:37,059 Funcionaría 759 00:32:37,059 --> 00:32:42,869 Solo si el criterio 760 00:32:42,869 --> 00:32:44,990 De ordenación del triset fuera por pit 761 00:32:44,990 --> 00:33:09,660 Si no, no. Luego, si el criterio de ordenación del triset de ejecución, si el criterio fuera pit, lo de arriba también funciona. Lo de arriba también funciona porque el triset mira la igualdad por el criterio de ordenación. 762 00:33:09,660 --> 00:33:15,319 que yo he hecho un triset con un criterio de ordenación 763 00:33:15,319 --> 00:33:16,539 no por pip 764 00:33:16,539 --> 00:33:21,660 es decir, si yo he hecho un triset sin esto 765 00:33:21,660 --> 00:33:24,160 con lo cual el criterio de ordenación 766 00:33:24,160 --> 00:33:27,220 es este de aquí, el del comparable 767 00:33:27,220 --> 00:33:29,259 que es esto otro 768 00:33:29,259 --> 00:33:30,779 no puedo borrar así 769 00:33:30,779 --> 00:33:36,099 no puedo borrar de esta manera 770 00:33:36,099 --> 00:33:40,029 Entonces 771 00:33:40,029 --> 00:33:42,369 Si no es el caso 772 00:33:42,369 --> 00:33:43,869 Pues como borro 773 00:33:43,869 --> 00:33:46,630 Pues borro con el iterador y ya está 774 00:33:46,630 --> 00:33:49,369 Siempre podré borrar así 775 00:33:49,369 --> 00:33:51,309 Me hago un iterator 776 00:33:51,309 --> 00:33:52,509 De proceso 777 00:33:52,509 --> 00:34:00,849 Ejecución 778 00:34:01,490 --> 00:34:02,390 Punto 779 00:34:02,390 --> 00:34:07,009 Iterator 780 00:34:07,009 --> 00:34:10,719 Vale, y ahora ya sí 781 00:34:10,719 --> 00:34:17,599 Mientras haya un siguiente sobre el que 782 00:34:17,599 --> 00:34:18,239 Iterar 783 00:34:18,239 --> 00:34:23,409 Si ese en el que estoy posicionada 784 00:34:23,409 --> 00:34:25,090 su pit 785 00:34:25,090 --> 00:34:27,050 es igual 786 00:34:27,050 --> 00:34:29,889 que el que me han dicho 787 00:34:29,889 --> 00:34:31,449 este 788 00:34:31,449 --> 00:34:33,469 es igual que el que me han dicho 789 00:34:33,469 --> 00:34:34,590 pues lo puedo borrar 790 00:34:34,590 --> 00:34:37,570 a través del iterador sin problema 791 00:34:37,570 --> 00:34:39,170 y ya está 792 00:34:39,170 --> 00:34:41,250 esto me va a funcionar siempre 793 00:34:41,250 --> 00:34:43,730 para borrar por pit 794 00:34:43,730 --> 00:34:45,510 al margen de si tengo un haset 795 00:34:45,510 --> 00:34:47,289 un triset, un list, da igual 796 00:34:47,289 --> 00:34:48,849 me va a funcionar siempre 797 00:34:48,849 --> 00:35:03,360 bueno y con esto habría terminado el ejercicio 798 00:35:03,360 --> 00:35:06,059 a ver hemos 799 00:35:06,059 --> 00:35:08,300 sacado muchas pequeñas cosas, 800 00:35:08,460 --> 00:35:10,679 pero una versión básica se podría hacer 801 00:35:10,679 --> 00:35:11,619 con muy poca cosa. 802 00:35:16,980 --> 00:35:18,460 A pesar que hemos aprovechado, pues bueno, 803 00:35:19,039 --> 00:35:20,760 para comentar muchas cosas en paralelo 804 00:35:20,760 --> 00:35:22,579 y todo eso. Pero 805 00:35:22,579 --> 00:35:24,380 hasta aquí 806 00:35:24,380 --> 00:35:27,300 todo esto tiene que estar muy suelto y muy fluido. 807 00:35:28,059 --> 00:35:28,280 ¿Vale? 808 00:35:29,239 --> 00:35:30,840 Tiene que estar suelto y fluido. 809 00:35:31,559 --> 00:35:32,860 Para que podamos seguir 810 00:35:34,880 --> 00:35:35,440 incorporando