|
1 |
| - |
| 1 | +import java.time.LocalDate; |
2 | 2 | import java.util.Arrays;
|
3 | 3 | import java.util.List;
|
4 | 4 | import java.util.function.Consumer;
|
|
9 | 9 |
|
10 | 10 | public class simonguzman {
|
11 | 11 | public static void main(String[] args) {
|
12 |
| - ejercicioPrincipal(); |
| 12 | + //ejercicioPrincipal(); |
| 13 | + ejercicioAdicional(); |
| 14 | + } |
| 15 | + |
| 16 | + /******************** Ejercicio adicional ********************/ |
| 17 | + public static void ejercicioAdicional(){ |
| 18 | + List<Estudiante> estudiantes = Arrays.asList( |
| 19 | + new Estudiante("Juan", LocalDate.of(2000, 5, 15), Arrays.asList(8.0, 9.0, 10.0)), |
| 20 | + new Estudiante("Ana", LocalDate.of(1998, 11, 3), Arrays.asList(9.5, 9.0, 9.7)), |
| 21 | + new Estudiante("Carlos", LocalDate.of(2002, 6, 21), Arrays.asList(6.0, 7.5, 8.0)) |
| 22 | + ); |
| 23 | + operaciones(estudiantes); |
13 | 24 | }
|
14 | 25 |
|
| 26 | + public static void operaciones(List<Estudiante> estudiantes){ |
| 27 | + promedioCalificaciones(estudiantes); |
| 28 | + |
| 29 | + List<String> mejores = mejoresEstudiantes(estudiantes); |
| 30 | + System.out.println("Mejores estudiantes: "+mejores); |
| 31 | + |
| 32 | + List<Estudiante> ordenados = ordenarPorNacimiento(estudiantes); |
| 33 | + System.out.println("Estudiantes ordenados por nacimiento:"); |
| 34 | + ordenados.forEach(est -> System.out.println(est.getNombre())); |
| 35 | + |
| 36 | + double mayorCalificacion = obtenerMayorCalificacion(estudiantes); |
| 37 | + System.out.println("Mayor calificación: " + mayorCalificacion); |
| 38 | + } |
| 39 | + |
| 40 | + public static void promedioCalificaciones(List<Estudiante> estudiantes){ |
| 41 | + estudiantes.forEach(estudiante -> { |
| 42 | + double promedio = estudiante.getPromedio(); |
| 43 | + System.out.println("Estudiante: "+estudiante.getNombre()+ " ,promedio: "+promedio); |
| 44 | + }); |
| 45 | + } |
| 46 | + |
| 47 | + public static List<String> mejoresEstudiantes(List<Estudiante> estudiantes){ |
| 48 | + return estudiantes.stream().filter(est -> est.getPromedio() >= 9).map(Estudiante::getNombre).toList(); |
| 49 | + } |
| 50 | + |
| 51 | + public static List<Estudiante> ordenarPorNacimiento(List<Estudiante> estudiantes){ |
| 52 | + return estudiantes.stream().sorted((e1, e2) -> e2.getFechaNacimiento().compareTo(e1.getFechaNacimiento())).toList(); |
| 53 | + } |
| 54 | + |
| 55 | + public static double obtenerMayorCalificacion(List<Estudiante> estudiantes){ |
| 56 | + return estudiantes.stream().flatMap(est -> est.getCalificaciones().stream()).max(Double::compareTo).orElse(0.0); |
| 57 | + } |
| 58 | + public static class Estudiante { |
| 59 | + private String nombre; |
| 60 | + private LocalDate fechaNacimiento; |
| 61 | + private List<Double> calificaciones; |
| 62 | + |
| 63 | + public Estudiante(){ |
| 64 | + |
| 65 | + } |
| 66 | + |
| 67 | + public Estudiante(String nombre, LocalDate fechaNacimiento, List<Double> calificaciones){ |
| 68 | + this.nombre = nombre; |
| 69 | + this.fechaNacimiento = fechaNacimiento; |
| 70 | + this.calificaciones = calificaciones; |
| 71 | + } |
| 72 | + |
| 73 | + public String getNombre() { |
| 74 | + return nombre; |
| 75 | + } |
| 76 | + |
| 77 | + public LocalDate getFechaNacimiento() { |
| 78 | + return fechaNacimiento; |
| 79 | + } |
| 80 | + |
| 81 | + public List<Double> getCalificaciones() { |
| 82 | + return calificaciones; |
| 83 | + } |
| 84 | + |
| 85 | + public double getPromedio(){ |
| 86 | + return calificaciones.stream().mapToDouble(Double::doubleValue).average().orElse(0.0); |
| 87 | + } |
| 88 | + } |
| 89 | + |
| 90 | + /******************** Ejercicio conceptual ********************/ |
| 91 | + |
15 | 92 | public static void ejercicioPrincipal(){
|
16 | 93 | List<Integer> numeros = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
|
17 | 94 | List<Integer> numerosMultiplicados = multiplicarXDos(numeros);
|
|
0 commit comments