viernes, 23 de diciembre de 2022

Programacion Funcional JAVA

 Programación Funcional JAVA

1.  List<Integer> numeros = List.of(11, 21, 38, 43, 54, 66, 7, 8, 19, 10);

     a) Obtener la cantidad de números pares.
     b) Obtener todos los números pares.
     c) Ordenar la lista de números en orden ascendente.
     d) Ordenar la lista de números en orden descendente.
     e) Ordenar solo los números pares en orden descendente.

Solución:

a)
     long result = numeros.stream()                                 
                                      .filter(n -> n % 2 == 0)
                                      .count();
     System.out.println(result);

b)
     List<Integer> listNumeros =  numeros.stream()                                 
                                                         .filter(n -> n%2 == 0)
                                                         .collect(Collectors.toList());
     listNumeros.forEach(System.out::println);   
                   
c)
     List<Integer> listOrderAsc =  numeros.stream() 
                                                         .sorted()                                   
                                                         .collect(Collectors.toList());
     listOrderAsc.forEach(System.out::println);

d)
     List<Integer> listOrderDesc =  numeros.stream() 
                                                         .sorted(Collections.reverseOrder())                                   
                                                         .collect(Collectors.toList());
     listOrderDesc.forEach(System.out::println);    

e)
     List<Integer> listOrderParDesc =  numeros.stream() 
                                                         .filter(n -> n % 2 == 0)
                                                         .sorted(Collections.reverseOrder())                                   
                                                         .collect(Collectors.toList());
     listOrderParDesc.forEach(System.out::println);  

2. Se tiene la siguiente lista de objetos. Crear la clase User con sus atributos name, edad y sus metodos get y set.

  List<User> users = new ArrayList<>();
    users.add(new User("Rafael", 25));
    users.add(new User("Daniel", 20));
    users.add(new User("Tania", 15));
    users.add(new User("Luisa", 24));
    users.add(new User("Miguel", 16));
    users.add(new User("Raul", 17));

a) Obtener la cantidad de usuarios con una edad mayor o igual a 18 y que su nombre empiecen con la letra "R".
b) Obtener solo el nombre de todas las personas mayores a 18
c) Ordenar la lista de objetos por el nombre en orden ascedente y mostrar solo el nombre.
d) Ordenar la lista de objetos por el nombre en orden descendente.
e) ghg
f) ghg
g) hg
h) gh

Solución:

a)
long cantidad = users.stream()
            .filter(user -> user.getAge() >= 18 && user.getName().toUpperCase().startsWith("R"))
            .count();
    System.out.println(cantidad);

b)
List<String> listMayor = users.stream()
            .filter(user -> user.getAge() >= 18)
            .map(User::getName)       // (u->u.getName())   //u es un objeto de la Clase User
            .collect(Collectors.toList());
    listMayor.forEach(System.out::println);

c)
List<String> byNameAsc = users.stream()
            .sorted((User a, User b) -> a.getName().compareTo(b.getName()))
            .map(User::getName) // (u->u.getName())   //u es un objeto de la Clase User
            .collect(Collectors.toList());

   byNameAsc.forEach(System.out::println);

d)
List<User> listUserOrderDesc = users.stream()
            .sorted((User a, User b) -> b.getName().compareTo(a.getName()))
            .collect(Collectors.toList());

    listUserOrderDesc.forEach(System.out::println);


No hay comentarios:

Publicar un comentario

Instalación y Configuración de un DNS Público en Debian 12

Configuración de un DNS Público en Debian 12 ===================================== Registrar un dominio público en Goddady, Namecheap  ó pun...