1 00:00:03,120 --> 00:00:05,559 A ver, para que os situéis 2 00:00:05,559 --> 00:00:07,780 ¿Qué es lo que se supone que pide ese ejercicio? 3 00:00:08,119 --> 00:00:11,589 Poner aquí 4 00:00:11,589 --> 00:00:21,079 Ejercicios 5 00:00:21,079 --> 00:00:23,280 Colecciones 6 00:00:23,280 --> 00:00:25,000 Vale 7 00:00:25,000 --> 00:00:30,199 Se ve, ¿no? 8 00:00:32,979 --> 00:00:34,399 Venga, pues ejercicio 1 9 00:00:34,399 --> 00:00:35,280 Voy a poner ahí 10 00:00:35,280 --> 00:00:42,179 Todo en este paquete 11 00:00:42,179 --> 00:00:45,420 Pues ¿qué es lo que se supone que yo quiero? 12 00:00:46,200 --> 00:00:47,420 Pues lo que le decía ella 13 00:00:47,420 --> 00:00:48,820 A ver, imaginaos 14 00:00:48,820 --> 00:00:54,270 Yo tengo una clase aquí main 15 00:00:54,270 --> 00:00:56,049 Mi programa, mi aplicación 16 00:00:56,049 --> 00:01:02,250 en la que necesito una pila para guardar, pues yo que sé, por ejemplo, cadenas. 17 00:01:02,770 --> 00:01:05,569 Yo voy a tener un montón de cadenas que voy a ir leyendo por teclado. 18 00:01:10,409 --> 00:01:13,250 Me voy a hacer aquí mi escáner para leer por teclado. 19 00:01:20,099 --> 00:01:22,200 Y esta aplicación mía, pues ¿qué va a hacer? 20 00:01:23,340 --> 00:01:26,340 Va a ir solicitando cadenas y yo las quiero apilar 21 00:01:26,340 --> 00:01:34,340 para luego después mostrarlas todas en el orden inverso al que se introdujeron. 22 00:01:34,620 --> 00:01:36,400 que eso es justo una pila 23 00:01:36,400 --> 00:01:38,560 yo voy metiendo cosas en la pila 24 00:01:38,560 --> 00:01:40,319 y luego cuando vaya sacando 25 00:01:40,319 --> 00:01:42,140 pues quiero que salgan 26 00:01:42,140 --> 00:01:44,099 en el orden inverso al que se introdujeron 27 00:01:44,099 --> 00:01:46,140 es decir, la última que se metió 28 00:01:46,140 --> 00:01:47,319 la primera que sale 29 00:01:47,319 --> 00:01:50,120 entonces, por ejemplo, yo querría hacer esto 30 00:01:50,120 --> 00:01:51,760 un bucle while 31 00:01:51,760 --> 00:01:54,319 que está todo el rato 32 00:01:54,319 --> 00:01:55,340 pues 33 00:01:55,340 --> 00:01:57,540 de condición, venga, lo voy a hacer 34 00:01:57,540 --> 00:02:02,879 para que sea más sencillo 35 00:02:02,879 --> 00:02:05,040 pues vamos a imaginar que yo quiero 36 00:02:05,040 --> 00:02:06,459 apilar 10 cosas 37 00:02:06,459 --> 00:02:07,239 10 38 00:02:07,239 --> 00:02:10,860 Bueno, pues yo quiero tener esta opción 39 00:02:10,860 --> 00:02:12,039 Quiero 40 00:02:12,039 --> 00:02:14,780 Le pido 41 00:02:14,780 --> 00:02:15,500 La cadena 42 00:02:15,500 --> 00:02:37,199 Y ahora, yo quiero meter esta cadena 43 00:02:37,199 --> 00:02:38,300 En una estructura de datos 44 00:02:38,300 --> 00:02:41,120 Podría meterla en un linked list, en un array list 45 00:02:41,120 --> 00:02:42,960 Por supuesto, pero bueno, lo que queremos es 46 00:02:42,960 --> 00:02:45,300 Meterla en una estructura de datos que nos vamos a hacer 47 00:02:45,300 --> 00:02:46,979 Nosotros, para practicar 48 00:02:46,979 --> 00:02:49,000 Vale, pues yo lo que quiero es 49 00:02:49,000 --> 00:02:53,039 Poder crearme una pila 50 00:02:53,039 --> 00:02:53,479 Sí 51 00:02:53,479 --> 00:03:00,810 yo lo que quiero es poder 52 00:03:00,810 --> 00:03:02,610 crearme una pila 53 00:03:02,610 --> 00:03:04,849 hecha por mí, declarada por mí 54 00:03:04,849 --> 00:03:05,449 como esta 55 00:03:05,449 --> 00:03:08,849 pero quiero que sea genérica, ¿qué significa 56 00:03:08,849 --> 00:03:10,689 genérica? que valga para cualquier 57 00:03:10,689 --> 00:03:11,530 tipo de dato 58 00:03:11,530 --> 00:03:14,810 y en el momento 59 00:03:14,810 --> 00:03:16,189 en el que yo la instancio 60 00:03:16,189 --> 00:03:18,710 en ese momento ya decir el tipo que quiero 61 00:03:18,710 --> 00:03:20,729 es decir, yo quiero 62 00:03:20,729 --> 00:03:22,669 declarar una clase con la que pueda hacer 63 00:03:22,669 --> 00:03:24,650 esto, todavía está por declarar 64 00:03:24,650 --> 00:03:26,229 eso es lo que pide el ejercicio 65 00:03:26,229 --> 00:03:28,490 quiero declarar una clase 66 00:03:28,490 --> 00:03:30,949 de tal forma que yo pueda instanciar 67 00:03:30,949 --> 00:03:32,330 un objeto de esa clase 68 00:03:32,330 --> 00:03:33,509 para el 69 00:03:33,509 --> 00:03:41,069 sí, pero es que 70 00:03:41,069 --> 00:03:42,610 yo quiero que me la programes tú 71 00:03:42,610 --> 00:03:44,449 con un array 72 00:03:44,449 --> 00:03:46,949 ¿vale? 73 00:03:47,830 --> 00:03:49,110 eso es el primer ejercicio 74 00:03:49,110 --> 00:03:49,810 ¿vale? entonces 75 00:03:49,810 --> 00:03:52,650 que es lo más interesante 76 00:03:52,650 --> 00:03:55,389 entonces yo quiero que declaréis esta clase 77 00:03:55,389 --> 00:03:56,150 ¿vale? 78 00:03:56,590 --> 00:03:57,650 que se llame así 79 00:03:57,650 --> 00:03:59,969 Yo la voy a instanciar 80 00:03:59,969 --> 00:04:01,409 En el momento de instanciarla 81 00:04:01,409 --> 00:04:03,569 Decido el tipo que me interesa 82 00:04:03,569 --> 00:04:04,409 Lo decido 83 00:04:04,409 --> 00:04:07,729 Y ahora yo quiero poder hacer esto 84 00:04:07,729 --> 00:04:13,610 Quiero poder hacer esto 85 00:04:13,610 --> 00:04:15,729 Vale, pues ya está 86 00:04:15,729 --> 00:04:17,730 Entonces, esa pila 87 00:04:17,730 --> 00:04:18,949 Tendrá que tener un método 88 00:04:18,949 --> 00:04:20,129 Que me apile 89 00:04:20,129 --> 00:04:25,660 Ahora, ¿qué más voy a querer hacer? 90 00:04:26,519 --> 00:04:27,399 Pues voy a querer 91 00:04:27,399 --> 00:04:29,040 Recorrer, voy a querer 92 00:04:29,040 --> 00:04:31,500 Poder desapilar con el pop 93 00:04:31,500 --> 00:04:33,100 Mientras no esté vacía 94 00:04:33,100 --> 00:05:01,120 Pues, por ejemplo, me interesaría un método que funcionara así. Mientras no se haya quedado vacía, es decir, mientras siga teniendo elementos, mientras no se haya quedado vacía, quiero yo poder hacer esto, ¿vale? 95 00:05:01,120 --> 00:05:25,100 Luego entonces, este es mi programa, mi programa necesita una estructura de datos para ir apilando en ella cadenas y también quiero tener la posibilidad de ir desapilando, de ir desapilando mientras no esté vacía para ir mostrando, ¿vale? Pues yo quiero esto, una aplicación que tenga esa pila para ir metiendo y desapilando, ¿vale? 96 00:05:25,100 --> 00:05:37,839 Pues entonces, vamos a hacer la clase genérica miStack que me ofrece este método push, que me ofrece este método pop y que me ofrece este método isEntity. 97 00:05:39,379 --> 00:05:40,939 Pues tendremos que programar eso. 98 00:05:43,180 --> 00:05:48,819 Entonces, la primera pregunta es, ¿internamente cómo lo va a guardar? 99 00:05:49,019 --> 00:05:49,620 Internamente. 100 00:05:50,220 --> 00:05:52,980 Bueno, pues internamente lo guarda en una raíz. 101 00:05:52,980 --> 00:05:55,360 con lo cual cada función push 102 00:05:55,360 --> 00:05:57,980 será hacerse un array nuevo 103 00:05:57,980 --> 00:05:59,439 con una posición más 104 00:05:59,439 --> 00:06:01,279 poner el elemento que me han dado 105 00:06:01,279 --> 00:06:03,920 en la posición del array más alta 106 00:06:03,920 --> 00:06:04,920 o la que sea 107 00:06:04,920 --> 00:06:07,459 ¿vale? como uno lo decía por dentro 108 00:06:07,459 --> 00:06:09,180 cada pop ¿qué será? 109 00:06:10,319 --> 00:06:10,879 coger 110 00:06:10,879 --> 00:06:13,819 la última posición que se añadió 111 00:06:13,819 --> 00:06:15,540 y eliminarla 112 00:06:15,540 --> 00:06:16,139 del array 113 00:06:16,139 --> 00:06:19,000 e isEmpty pues está claro 114 00:06:19,000 --> 00:06:20,939 si el array se ha quedado sin posiciones 115 00:06:20,939 --> 00:06:22,860 con cero, si tiene cero posiciones 116 00:06:22,860 --> 00:06:25,019 Si len es igual a cero 117 00:06:25,019 --> 00:06:25,720 Pues es cero 118 00:06:25,720 --> 00:06:28,319 Pues son los tres métodos 119 00:06:28,319 --> 00:06:29,480 Que querríamos hacer 120 00:06:29,480 --> 00:06:33,990 ¿Te ves con fuerza de empezar a hacerlo? 121 00:06:36,009 --> 00:06:36,970 Venga, arrancad a hacerlo 122 00:06:36,970 --> 00:06:37,529 Y luego ya 123 00:06:37,529 --> 00:06:39,629 Enfrentaos a ello 124 00:06:39,629 --> 00:06:41,490 Y luego ya lo hacemos 125 00:06:41,490 --> 00:06:42,310 ¿Vale?