Ejercicios¶
Ejercicio 1
Realiza una nueva versión del proyecto del tema anterior eliminando la clase Stream<T>
y haciendo uso de los streams
Ejercicio 2
En un Udemy se desea guardar información referente a los cursos que se tienen almacenado:
- El título del curso
- La duración expresada en horas. Si un curso dura una hora y 15 minutos se representará como 1,25.
- Cantidad de videos que contiene el curso
- Cantidad de alumnos subscritos al curso
Teniendo en cuenta la siguiente información de los cursos:
Título | Duración | Vides | Alumnos |
---|---|---|---|
Curso profesional de Java | 6,5 | 50 | 200 |
Curso profesional de Python | 8,5 | 60 | 800 |
Curso profesional de DB | 4,5 | 700 | 700 |
Curso profesional de Android | 7,5 | 10 | 400 |
Curso profesional de Escritura | 1,5 | 10 | 300 |
- Obtener la cantidad de cursos con una duración mayor a 5 horas.
- Obtener la cantidad de cursos con una duración menor a 2 horas.
- Listar título de todos aquellos cursos con una cantidad de vídeos mayor a 50.
- Mostrar en consola el título de los 3 primeros cursos con mayor duración.
- Mostrar en consola la duración total de todos los cursos.
- Mostrar en consola todos aquellos libros que superen el promedio en cuanto a duración se refiere.
- Mostrar en consola la duración de todos aquellos cursos que tengan una cantidad de alumnos inscritos menor a 500.
- Obtener el curso con mayor duración.
- Crear una lista con todos los títulos de los cursos.
Ejercicio 3
Crea una aplicación Java que defina las siguientes clases:
- Student: Representa a un alumno. Dispone de los campos:
- id: identificador de tipo long
- name: nombre del alumno de tipo String
- age: edad del alumno de tipo int
- group: grupo del alumno de tipo String
- grant: cantidad de la beca concedida de tipo Integer
- grades: notas del alumno de tipo List
- Grade: Representa una nota. Dispone de los campos:
- subject: nombre de la asignatura de tipo String
- mark: nota de dicha asignatura de tipo float
- Database: Representa la base de datos con la que trabajaremos. Dispondrá de un campo privado correspondiente a la lista de estudiantes. Además tendrá un método público denominado queryAllStudents() que retornará la lista de alumnos.
Inicializa la base de datos con los siguientes datos de los alumnos (en este orden):
ID | Name | Age | Group | Grant | Grades |
---|---|---|---|---|---|
1 | Germán Ginés | 23 | 1º CFGS DAM | 2000 | [PROGR, 8], [LM, 3] |
2 | Baldomero | 21 | 1º CFGS DAM | 0 | [PROGR, 5], [LM, 4] |
3 | Ana Guerra | 17 | 1º CFGS SMR | 4000 | [PROGR, 8] |
Realiza en Java los métodos necesarios para mostrar por pantalla el resto de las siguientes consultas, usando streams (y optionals cuando sea necesario).
-
showLegalAgeStudentCount(): Debe mostrar los alumnos que sean mayores de edad. La salida sería:
-
showStudentNamesOrderAlphabetically(): Debe mostrar los nombre de los alumnos ordenados alfabéticamente. La salida sería:
-
showFirstTwoStudentsNames(): Debe mostrar los nombres de los dos primeros alumnos. La salida sería:
-
showStudentsNamesExceptTheFirstOne(): Debe mostrar los nombres de todos los alumnos menos del primero, La salida sería:
-
showStudentsNamesUntilFirstNotLegalAgeOne(): Debe mostrar los nombres de todos los alumnos hasta que encuentre uno menor de edad. Éste ya no lo mostrará. La salida sería:
-
showStudentsSinceFirstNotLegalAgeOne(): Debe mostrar los nombres de todos los alumnos desde que encontremos uno menor de edad. Éste si lo mostrará. La salida sería:
-
showDifferentSubjectsOrderedAlphabetically(): Debe mostrar las asignaturas de las que hay algún alumno matriculado, ordenadas alfabéticamente. La salida sería:
-
showStudentsGrantsAndSum(): Debe mostrar la beca de cada alumno y además la suma de todas las becas. La salida sería:
-
getStudentsOlderThan20(): Debe retornar una lista con los nombres de los alumnos mayores de 20 años. El retorno debería la lista:
-
showYoungestStudentName(): Debe mostrar el nombre de alumna más joven. La salida sería:
-
showOldestStudentOlderThan23(): Debe mostrar el nombre del alumnos más veterano de entre los que tengan más de 23 años. La salida sería:
-
showStudentNamesWithCommasOrderedByAge(): Debe mostrar una cadena con los nombres de los alumnos separados por coma, ordenados por su edad. La salida sería:
-
showStudentCountInEachGroup(): Debe mostrar el número de alumnos de cada grupo-clase, ordenados por nombre del grupo. La salida sería:
Intenta hacer que el listado salga ordenado por el nombre del grupo-clase, a ver si lo consigues.
-
showGrantSummary(): Debe mostrar la estadística de becas de los alumnos, es decir, la beca máxima, la mínima y la media (haciendo todos los cálculos de una sola vez). La salida sería:
-
showAreAnyStudentUnderLegalAge(): Debe mostrar si hay algún alumno menor de edad. La salida sería:
-
showAllStudentHaveGrant(): Debe mostrar si todos los alumnos tienen beca. La salida sería:
-
showFirstStudentWithoutGrant(): Debe mostrar el nombre del primer alumno que no tenga beca. La salida sería:
-
showHowManyStudentWithOrWithoutGrant(): Debe mostrar cuántos alumnos hay con beca y cuántos sin beca. La salida sería:
-
showNumberOfSubjectsOfEachStudent(): Debe mostrar el número de asignaturas de las que está matriculado cada alumnos. La salida sería:
-
showNumberOfPassersStudentsOfEachSubject() (NIVEL PRO): Debe mostrar el número de alumnos aprobados en cada asignatura (mark >= 5). La salida sería:
Intenta hacer que el listado salga ordenado por nombre de la asignatura.