Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 05-03-24 - 3 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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
El
00:15:08
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
3
00:16:01
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
1
00:16:11
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
eh
00:17:32
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