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?
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?
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.