Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Clase 05-03-24 - 3 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 6 de marzo de 2024 por Raquel G.

7 visualizaciones

Descargar la transcripción

Vale, bueno, pues aquí lo primero tendremos que localizar al profesor, localizar al profesor con ese nif, bueno, pues nada, aquí si queremos evitar el for, porque somos vagos, tenemos, por practicar, no porque sea especialmente práctico, por practicar, acordaos de este método, 00:00:01
este método te devuelve 00:00:25
la posición 00:00:32
en la que está 00:00:33
un objeto que tú le pasas por parámetro 00:00:38
dentro de esa lista 00:00:40
entonces, si yo le paso aquí 00:00:43
un profesor con nif 00:00:48
este 00:00:51
ya tengo su posición 00:00:51
no necesito nif, no necesito nada 00:00:54
no necesito form y nada, perdón 00:00:55
Daniel 00:00:58
que te calles 00:01:00
Y Mario también 00:01:02
¿Vale? Entonces por practicar 00:01:05
Bueno, pues si nosotros aquí 00:01:07
Vamos a hacer en el profesor por comodidad 00:01:09
Un constructor con clave primaria 00:01:11
Con un constructor 00:01:13
Con el NIF solo 00:01:15
Que nos va a hacer todo más cómodo 00:01:16
Vale, pues si nos hacemos un profesor 00:01:27
Con el NIF 00:01:29
La profesor 00:01:30
La posición del profesor 00:01:31
Ya la tengo 00:01:35
Ala, es esta 00:01:36
ya la tengo, no necesito ni for ni nada 00:01:39
¿no? 00:01:42
en esa posición 00:01:44
en esta 00:01:46
está el profesor 00:01:47
cuyo nif es este 00:01:49
porque tenemos este método de listas 00:01:50
que me dice 00:01:53
oye, pásame un objeto 00:01:54
y yo te digo la primera posición 00:01:56
en la que encuentro un objeto 00:01:59
igual que él 00:02:01
y como la igualdad está con nif 00:02:02
pues yo le paso un objeto profesor 00:02:05
con ese nif que le he pasado 00:02:07
y me dice, ala, en esta posición está. 00:02:08
Bueno, pues entonces me ahorro ya el for. 00:02:12
Con eso si quiero me ahorro el for. 00:02:13
Me lo ahorro yo para escribir. 00:02:16
La máquina virtual no se lo ahorra 00:02:17
porque el index of lo hará por dentro, obviamente. 00:02:19
El for está, pero no lo escribimos nosotros. 00:02:22
Bueno, pues ahora ¿qué hacemos con ese profesor? 00:02:27
Vamos a ordenar su lista de alumnos. 00:02:30
Ordenar la lista, tenemos un sort. 00:02:35
O sea, lo que queremos ordenar es la lista de alumnos de este profesor y la lista de alumnos de este profesor. Este es el profesor, ¿verdad? Este. Su lista de alumnos es esta. Esta es la lista de alumnos de este profesor. 00:02:37
si me quiero hasta ahorrar otra línea 00:03:01
pero para qué, tampoco he tratado de ahorrar líneas 00:03:03
sino que quede claro, podría meter todo esto 00:03:04
todo esto 00:03:07
si lo meto aquí 00:03:09
si lo meto ahí 00:03:09
es que hasta ni siquiera necesito la línea 00:03:12
de arriba, pero bueno, me va a quedar 00:03:15
el método hecho 00:03:17
en una sola línea, así por la línea tan larga 00:03:19
que para qué 00:03:20
entonces 00:03:22
vale, pues esta es la lista de alumnos 00:03:23
del profesor de posición 00:03:29
post 00:03:30
que es donde está un profesor con ese NIF 00:03:32
vale, para ordenar esa lista 00:03:35
que teníamos 00:03:37
pues tenemos un método sort 00:03:38
un método sort que me la ordena 00:03:40
claro, tengo un método sort que me ordena la lista 00:03:42
vale 00:03:47
pero a ese método 00:03:48
sort le 00:03:50
tenemos que pasar 00:03:52
un criterio de comparación 00:03:53
un criterio de comparación 00:03:56
entonces, ese criterio 00:03:58
de comparación 00:04:01
comparador alfabético 00:04:01
por ejemplo, lo tendremos que instanciar 00:04:06
nosotros 00:04:08
lo instanciamos nosotros, un comparador 00:04:09
alfabético, pero tendremos que haberlo hecho 00:04:14
pues vamos a crear esa clase 00:04:15
me creo esa clase 00:04:17
vale 00:04:21
esta clase 00:04:23
va a ser una clase 00:04:25
comparadora de 00:04:27
alumnos 00:04:28
vale 00:04:32
el comparador alfabético tiene que implementar 00:04:34
la interfaz comparator esta de alumno 00:04:37
vale, porque es un comparador 00:04:39
de alumnos, al implementar 00:04:41
esa interfaz 00:04:43
tiene que sobre escribir 00:04:44
ese método 00:04:47
y ahora yo ya devuelvo aquí el criterio 00:04:48
alfabetico que ya lo vimos el otro día 00:04:51
pues aquí 00:04:53
1.getNombre 00:04:55
compareTo 00:05:04
o 2.getNombre 00:05:08
este mismo caso lo hicimos el otro día 00:05:14
este método que tiene que tener dentro 00:05:19
tiene que hacer algo que me devuelva 00:05:22
negativo si este va antes 00:05:24
cero si están 00:05:26
iguales en orden y positivo 00:05:27
si este va después 00:05:30
eso era lo que significaba el método compare 00:05:31
vale, pues para mi 00:05:34
que es ir antes, estar a la vez 00:05:36
o ir después 00:05:38
el nombre 00:05:38
vale, el orden alfabético de nombre 00:05:40
pues entonces o1.getNombre 00:05:44
y o2.getNombre 00:05:46
estos dos son los que tengo que comparar 00:05:48
o1.getNombre y o2.getNombre 00:05:50
vale, como son string 00:05:52
la clase string tenía un método 00:05:53
compareTo que es este 00:05:57
que si yo le paso dos string 00:05:58
me da negativo si este es alfabéticamente 00:06:00
antes, cero si alfabéticamente 00:06:03
son tan cascados, son el mismo 00:06:05
y positivo si este va alfabéticamente después 00:06:06
el compareTo de string me hacía eso 00:06:09
pues me aprovecho 00:06:10
y llamo al compareTo 00:06:12
de los dos nombres 00:06:14
y ya tengo un método que me dice cuál de estos va antes en función de ese criterio de nombre. 00:06:15
Ya lo tengo. 00:06:23
Pues ya tengo un comparador alfabético por nombres para alumnos. 00:06:25
Para alumnos. 00:06:32
Pues ya está. 00:06:33
Ya se lo puedo pasar al método sort. 00:06:35
Y el método sort, según este criterio de comparación, me va a ordenar esta lista. 00:06:39
y esta es la lista del profesor pos 00:06:44
que yo he sacado 00:06:47
con este de aquí 00:06:49
vale, entonces 00:06:50
esto efectivamente 00:06:54
podría ser una línea de código 00:06:56
este método, vale, pero que no hay necesidad 00:07:03
no hay necesidad 00:07:06
pero podéis ver códigos por ahí 00:07:07
que tengan líneas de código muy largas 00:07:09
sentencias largas 00:07:12
y tampoco hay que asustarse, tenéis que saber interpretarlas 00:07:13
pero bueno 00:07:16
no hay necesidad de por sistema 00:07:19
hacer los códigos cortos, si da igual 00:07:20
lo que va a hacer la máquina virtual va a ser lo mismo 00:07:22
va a ejecutar lo mismo, lo escribo yo en una línea que no 00:07:24
si son claros 00:07:26
mejor que si son 00:07:28
vale, entonces bueno, vamos a 00:07:29
ponerlo así 00:07:32
que nos queda más cortito 00:07:34
vale, entonces con esto la he ordenado 00:07:35
pero bueno, me falta mostrarla, no la he mostrado 00:07:40
claro, no la he mostrado la lista 00:07:42
entonces ahora habría que mostrar la lista 00:07:43
esta de aquí, vale 00:07:46
tendríamos que mostrar esta lista 00:07:49
entonces 00:07:51
para cambiar 00:07:53
pues cada alumno A en esta lista 00:07:59
que acabamos de ordenar 00:08:01
vamos a mostrar 00:08:03
a punto de nombre 00:08:10
listado alfabético 00:08:13
de nombres, ya está 00:08:15
ya tenemos el listado alfabético de nombres del profe 00:08:17
y a este método pues 00:08:19
lo, en lugar 00:08:23
de este código, ponerlo 00:08:26
directamente en el switch case, que podríamos haberlo 00:08:27
puesto en el switch case, pues lo 00:08:29
ponemos en un método auxiliar 00:08:31
privado mío que está en ese mismo main 00:08:33
lo llamamos de aquí y ya está, en lugar de 00:08:35
meterlo en el twist 00:08:37
ah bueno, que es esta 00:08:38
vale, bueno, para probar 00:08:42
esto antes de dejarlo, vamos a 00:08:54
hacer el caso 1 rápidamente para poder 00:08:56
tener un profe, para poder 00:08:58
probarlo 00:09:00
leer datos profesor 00:09:04
lo mismo, voy a meterlo en un método 00:09:05
auxiliar, leer datos 00:09:08
profesor al que llame desde aquí 00:09:13
y ese método auxiliar 00:09:15
que me devuelva 00:09:16
un profesor ya leído 00:09:17
e instanciado 00:09:20
así por ejemplo 00:09:21
y entonces ya lo añado 00:09:23
voy a hacer un método auxiliar simplemente para los 00:09:27
sistemas de las lecturas 00:09:30
que me devuelva el objeto p 00:09:31
y ahora ya lo añado aquí 00:09:33
vamos a hacer ese método 00:09:35
y ahora ese método 00:09:38
que me lo ha puesto aquí 00:09:46
vamos a ponerle 00:09:47
introduzca nif y aquí el nif del profe, vamos a ver el nombre y el rollo es el 00:09:52
listado de alumnos que habría que decirle cuántos alumnos quiere y para 00:10:21
cada uno nif y nombre, pero bueno vamos a hacerlo completo y ya está, introduzca 00:10:24
nombre y ahora habría que decirle número de 00:10:33
alumnos por ejemplo, número de alumnos pues y ahora hacemos un for para leer 00:10:37
los alumnos. Por ejemplo, vale, estos alumnos van a ir a una lista de alumnos que luego 00:10:55
va a ir al profesor. Entonces, vamos a hacer aquí una lista de alumnos y ahora habrá 00:11:08
que decirle nifalumno, nifalumno y vamos a hacerlo así para que quede más bonito. 00:11:32
Primero instanciamos un alumno sin propiedades y luego se la vamos fijando con los set. 00:11:47
New alumno. 00:11:54
Ah, que no tenemos constructor sin parámetros de alumno. 00:11:55
Pues vamos a hacerlo. 00:11:58
¿Cómo que no? Si lo tengo aquí. 00:11:59
Ah, no, es que es esta otra. 00:12:08
No tengo constructor sin parámetros. 00:12:09
Vamos a hacer un constructor sin parámetros de alumno. 00:12:10
Ahí, constructor sin parámetros. 00:12:21
Y ahora. 00:12:23
Nif alumno. 00:12:25
Ah, le hacemos con el set. 00:12:27
Nif. 00:12:29
Este. 00:12:36
Vale. 00:12:37
Nif y nombre. 00:12:38
y ahora añadimos a la lista de alumnos 00:12:39
alumnos.add a 00:12:53
con este for 00:12:57
estamos creando una lista de objetos alumno 00:12:59
una lista de objetos alumno 00:13:02
una lista de objetos alumno 00:13:04
cuando este for ya termina 00:13:07
ya podemos instanciar el profesor 00:13:08
con ese if, ese nombre 00:13:10
y esa lista de alumnos 00:13:12
y devolverlo 00:13:14
pues venga 00:13:15
profesor p igual a new 00:13:17
profesor 00:13:19
aunque no tengo constructor sin parámetros 00:13:21
venga, lo vamos a hacer 00:13:25
y ahora le pongo 00:13:26
p.setNombre 00:13:43
setNif, el nif que acabo de leer 00:13:45
p.setNombre 00:13:47
el que acabo de leer 00:13:51
y p.setListaDeAlumnos 00:13:52
la que acabo de hacer 00:13:56
y ahora ya devuelvo al profesor 00:13:57
ala, pues ya tengo este método auxiliar 00:14:03
tengo este método auxiliar 00:14:05
que pide los datos 00:14:11
del NIF del profesor, nombre 00:14:13
del profesor, pide toda una lista 00:14:15
de alumnos que va construyendo con NIF 00:14:17
y nombre, NIF y nombre 00:14:19
y ahora ya crea un profesor con ese NIF 00:14:20
ese nombre y esa lista de alumnos 00:14:23
este método es solamente para pedir datos 00:14:24
por teclado y ya está, solo para eso 00:14:27
bueno, pues ese método 00:14:29
lo llevamos desde aquí, nos devuelve 00:14:31
el profesor y se añade a la lista 00:14:33
y ahora ya podemos 00:14:35
probar esta aplicación entera 00:14:37
que hemos hecho así del tirón de buenas a primeras 00:14:39
A ver si hay null pointer exception 00:14:41
No hay cosas raras por ahí 00:14:44
Que es muy probable que alguna 00:14:45
Se nos haya escapado 00:14:47
Vale, pues venga, vamos a insertar un primer profesor 00:14:52
Vale 00:15:01
El nif1234 00:15:05
El del profe, vale 00:15:06
Vale, número de alumnos 00:15:09
De que va a tener este profe 00:15:12
Dos alumnos 00:15:13
Nif del alumno 0 00:15:16
1111 00:15:17
Nombre del alumno 0 00:15:19
Vale, y ahora 00:15:21
Nid del alumno 1, 2, 2, 2, 2 00:15:25
Nombre del alumno 1 00:15:28
Vale, ya tenemos a Bea 00:15:29
Con dos alumnos 00:15:30
Uno es Juan 00:15:33
Con uno, uno, vale, ya tenemos 00:15:35
Venga, vamos a ver 00:15:37
Listado alfabético de alumnos 00:15:39
Bueno, es que como ya estaba 00:15:43
Alfabético, vamos a meter otro 00:15:47
Profe 00:15:49
Vamos a meter otro profe más 00:15:49
Vale 00:15:52
5, 6, 7, 8 00:15:54
Nombre 00:15:56
Número de alumnos 00:15:58
Nib de alumno 0 00:16:02
Nombre de alumno 0 00:16:06
Z, Z 00:16:08
Para que esté el último 00:16:09
Nib de alumno 1 00:16:10
Este 00:16:12
Y nib de alumno 2 00:16:14
Este 00:16:15
A, A, A 00:16:17
Vale 00:16:19
Y ahora vamos a ver 00:16:19
El listado alfabético de alumnos 00:16:22
de Raquel que tiene 5, 6, 7, 8 00:16:24
el NIF, a ver si los saca por orden alfabético 00:16:27
3, NIF del profe 00:16:30
5, 6, 7, 8 00:16:33
efectivamente los ha ordenado alfabéticamente los alumnos de ese NIF 00:16:35
y vamos a ver los profes que tiene 00:16:39
el alumno de NIF 00:16:45
1, 1, 1, 1 00:16:49
2, 1, 1, 1, 1 00:16:50
tiene solamente ABA 00:16:56
vale, es solo una prueba 00:16:59
eso no significa que la aplicación 00:17:01
esté bien, a lo mejor hacemos más pruebas 00:17:04
y hay casos a los cuales no funciona 00:17:05
pero teniendo en cuenta que es pequeñita 00:17:08
pues más o menos podemos concluir 00:17:10
que lo que hemos hecho es lo que queríamos 00:17:11
hacer, que está bien 00:17:14
vale, 0, salir 00:17:15
vale 00:17:17
tratar de hacer, bueno, el 4 y el 5 00:17:34
que es un poco lo mismo 00:17:44
todo el rato, lo mismo todo el rato, lo mismo todo el rato 00:17:46
pero 00:17:48
es practicar 00:17:49
vale 00:17:50
el 4 y el 5 que os digo todo el rato 00:17:52
pero vale 00:17:54
bueno a ver 00:17:56
pues nada 00:17:58
que problemas tenemos 00:17:59
con listas 00:18:03
con listas ninguno 00:18:04
en todo caso a lo mejor tendremos problemas de programación 00:18:05
de no acordarnos de cosas 00:18:08
vale 00:18:09
con listas en particular 00:18:12
¿algún problema? 00:18:14
nada 00:18:18
Bueno, a ver 00:18:18
Antes de pasar a los conjuntos 00:18:25
Vamos a cerrar alguna cosita 00:18:31
Suelta de listas 00:18:33
Pero vamos, es una chorrada 00:18:34
Solo por completitud 00:18:36
Vale, entonces 00:18:38
Aquí en este proyecto de estructuras dinámicas 00:18:40
Que teníamos aquí mucho guarreo 00:18:42
Bueno, vamos a parar aquí antes 00:18:44
Un momentito 00:18:46
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
7
Fecha:
6 de marzo de 2024 - 12:25
Visibilidad:
Público
Centro:
IES ROSA CHACEL
Duración:
18′ 50″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
95.33 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid