Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Complexidade do algoritmo utilizando streams

Olá. boa tarde!!

Gostaria de saber como ficaria a complexidade do algoritmo quando chamamos em sequencia o método filter() -> map() e forEach(). Nesse caso ele itera sobre a lista 3x?

1 resposta
solução!

Não sei se entendi bem a questão mas nesse código:

cursos.stream()
   .filter(c -> c.getAlunos() > 100)
   .map(c -> c.getAlunos())
   .forEach(x -> System.out.println(x));

o que acontece é o seguinte, vamos dizer que existem 500 cursos nessa lista.

Então o filter vai iterar por todos os cursos e devolver apenas aqueles que tem mais de 100 alunos, vamos dizer que retornou 30 cursos. Depois, o map vai iterar os 30 cursos e transformar em uma stream de inteiros, ou seja, mapeou de Curso para inteiro. Em seguida, o forEach irá iterar pelos 30 resultados inteiros retornados pelo map e imprimir no console.

Logo, nesse caso, teríamo:s 500 + 30 + 30 = 560 iterações.