...
| Bloque de código |
|---|
@GetMapping("api/{version}/usuarios")
public List<UsuarioDTO> listarUsuarios() {
return this.usuarioService.findAll().parallelStream().map(Usuario::toDTO).collect(Collectors.toList());
} |
La llamada usando programación funcional hace lo siguiente:
- this.usuarioService.findAll(): devuelve las entidades igual que con la manera tradicional
- parallelStream(): Crea un stream para procesar la lista de manera paralela. Si no nos importa el orden los stream paralelos aprovechan la potencia de la programación concurrente para optimizar los recorridos.
- map(Usuario::toDTO): Esta función cambia cada elemento de la lista por el resultado de ejecutar la expresión Lambda o referencia a método que contiene.
- Usuario::toDTO: Ejecuta el método toDTO() de la clase Usuario para cada valor del stream.
- collect(Collectors.toList()): Devuelve el resultado de procesar el stream como una lista.